Наткнулся на очередной блокпост. Прямо сейчас у меня есть страница, содержащая Plupload
и повторитель, который в основном извлекает все загруженные изображения из базы данных. Эта страница загружается динамически в colorbox
.
Мне нужно, чтобы повторитель обновлялся при загрузке новых изображений в базу данных. Я делаю это, просто вызывая Repeater и связывая его с данными (Repeater1.Databind()). Я почти уверен, что решение лежит в Ajax
, но я осмотрелся и даже использовал их для вызова веб-службы, но как выполнить код позади метода?
Код метода, который я хочу выполнить:
Public Sub reBind()
Dim dt2 As DataTable = blOrgLogo.getOrgLogo(userId, False).Tables(0)
If (dt2 Is Nothing) Or (dt2.Rows.Count = 0) Then
' Nothing is returned
Else
repLogoCollection.DataSource = dt2
repLogoCollection.DataBind()
End If
End Sub
В одном из примеров, которые я видел в Интернете, говорится, что это можно сделать с помощью PageMethods
, но я не могу заставить его работать с вышеупомянутым методом.
Я не могу использовать элемент управления ASP.Net Ajax Timer
, так как он просто не работает, когда страница загружается через colorbox. (Если у кого-то есть решение для этого, было бы здорово, так как это упростило бы все, ха-ха)
Еще одна часть информации, которая, я не уверен, может быть полезной, заключается в том, что повторитель привязан к page_load.
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
userId = Session("UserID")
Dim dt As DataTable = blOrgLogo.getOrgLogo(userId, False).Tables(0)
If (Not IsPostBack) Then
If (dt Is Nothing) Or (dt.Rows.Count = 0) Then
' Nothing is returned
Else
Repeater1.DataSource = dt
Repeater1.DataBind()
End If
End If
End Sub
javascript для загрузки:
// Client side form validation
$('#uploader').submit(function (e) {
var uploader = $('#uploader').pluploadQueue();
// Validate number of uploaded files
if (uploader.total.uploaded == 0) {
// Files in queue upload them first
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind('UploadProgress', function () {
if (uploader.total.uploaded == uploader.files.length)
$('form').submit();
});
uploader.start();
} else
alert('You must at least upload one file.');
e.preventDefault();
}
});