別の障害物に遭遇しました。Plupload
現在、アップロードされたすべての画像を基本的にデータベースからプルするリピーターを含むページがあります。このページは で動的に読み込まれますcolorbox
。
私が必要としているのは、新しい画像がデータベースにアップロードされたときにリピーターがそれ自体を更新することです。これを行うには、Repeater を呼び出してデータバインドします (Repeater1.Databind())。私は解決策があると確信していますがAjax
、私は周りを見回し、それらを使用してWebサービスを呼び出すことさえしましたが、コードビハインドメソッドをどのように実行しますか?
実行したいコードビハインドメソッドは次のとおりです。
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
ページがカラーボックスを介してロードされたときに機能していないように見えるため、コントロールを使用できません。(誰かがこれに対する解決策を持っているなら、それはすべてを簡素化するので素晴らしいでしょう)
もう 1 つ、リピーターが 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
Plupload 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();
}
});