2

別の障害物に遭遇しました。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();
    }
});
4

1 に答える 1

1

使用する必要があります

  $.ajax({
            type: "POST",
//Location to the webservice or the webmethod
            url: "Services/Service.asmx/reBind",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(data) {
            //on success     
            },
            error: function(ex) {
           //on error            
            }
        });

そして、メソッドの追加の上に[WebMethod(true)]、これと同等の vb.net を見つける必要があるかもしれません。これは、私が c# で使用したものです。

ajax 呼び出しに関しては、Web サービスにコードを含める必要があるかどうかはわかりません。クラス内にある場合でも機能すると確信しています。両方を試す必要があるかもしれません。

于 2012-07-16T18:38:18.200 に答える