0

このtopcに関するいくつかの投稿を見ました。1つのコードに気づきました。私はまた、以下のコードURLで同じコードに取り組みました。 asp.netデータリストをjQueryでバインドする

function OnSuccess(response) {
            $("[id*=dlOnFrontPageProducts]").attr("border", "1");
            var xmlDoc = $.parseXML(response.d);
            var xml = $(xmlDoc);
            var customers = xml.find("Table1");
            var row = $("[id*=dlOnFrontPageProducts] tr:last-child").clone(true);
            $("[id*=dlOnFrontPageProducts] tr:last-child").remove();
            $.each(customers, function () {
                alert(this);
                var customer = $(this);
                $(".Name", row).html(customer.find("Name").text());
                $(".BrandName", row).html(customer.find("BrandName").text());
                $(".MarketPrice", row).html(customer.find("MarketPrice").text());
                $(".CurrencyShortName", row).html(customer.find("CurrencyShortName").text());
                $(".Price", row).html(customer.find("Price").text());
                $(".WindowImageUrl", row).html(customer.find("WindowImageUrl").text());
                $(".SaleCount", row).html(customer.find("SaleCount").text());
                $(".IsActive", row).html(customer.find("IsActive").text());
                $("[id*=dlOnFrontPageProducts]").append(row);
                row = $("[id*=dlOnFrontPageProducts] tr:last-child").clone(true);
            });
        }




<asp:DataList    ID="DataList1" runat="server" AutoGenerateColumns="false" Font-Names="Arial"
Font-Size="10pt" RowStyle-BackColor="#A1DCF2" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor = "White">
    <ItemTemplate>
     <asp:Label ID="lbldescription"  runat="server" Text='<%# Eval("description")%>'>
         </asp:Label>
     <asp:Label ID="name"  runat="server" Text='<%# Eval("name")%>'>
        </asp:Label>                   
   </ItemTemplate>

ajaxとjqueryを使用してバインドするにはどうすればよいですか。私のページはページをロードするのに16秒かかります。それはyiがjqueryに行くことです。

解決策を見つけるために私を助けてください....

ありがとう

4

2 に答える 2

1

Bindコントロールはサーバー側のコード(コードビハインドなど)を介してバインドされた場合にのみ作成されるため、jQueryを介してDataListコントロールを作成することはできません。

コントロールにAjaxとjQueryを使用したい場合はbind、プレーンな古いHTMLを使用することをお勧めします。

または、をいくつかのデータとバインドしDataListてレンダリングすると、HTML要素がページ上に作成され、それらを操作できます。

于 2013-02-02T10:24:10.037 に答える
0

コールバックメソッドを使用して、ポストバックなしでこの概念を実装しました。コードを以下に示します

 Dim callback As String = ClientScript.GetCallbackEventReference(Me, "message", "processMyResult", "context")
        Dim script As String = "function CallBack(message,context){" + callback + ";}"
        ClientScript.RegisterClientScriptBlock(Me.GetType(), "CB", script:=script, addScriptTags:=True)



 Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
    If (eventArgument) Is Nothing Then

        returnValue = "-1"

    Else

        binddata(eventArgument)
    End If



    Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
    Dim sw As System.IO.StringWriter = New System.IO.StringWriter(sb)
    Dim hw As HtmlTextWriter = New HtmlTextWriter(sw)
    gvCustomers.RenderControl(hw)
    returnValue = sb.ToString()

End Sub

Public Function GetCallbackResult() _
As String Implements _
System.Web.UI.ICallbackEventHandler.GetCallbackResult

    Return returnValue

End Function

Public Function binddata(ByVal eventArgument As String) as nullable
    Dim adp As New dsRegistrationTableAdapters.searchPackagesTableAdapter()
    Dim dt As New dsRegistration.searchPackagesDataTable()
    dt = adp.GetData(eventArgument, StartDateTextBox.Text, EndDateTextBox.Text)


    gvCustomers.DataSource = dt
    gvCustomers.DataBind()
    SearchTextBox.Focus()


End Function

助けてくれてありがとう…。

于 2013-02-03T13:39:31.717 に答える