1

ASP.NET Web アプリに JQuery 無限スクロールを実装します。次の jquery funcyion を使用します ( http://code.msdn.microsoft.com/CSASPNETInfiniteLoading-16f5bdb8から取得):

$(document).ready(function () {

       function lastPostFunc() {
           $('#divPostsLoader').html('<img src="images/bigLoader.gif">');

           //send a query to server side to present new content
           $.ajax({
               type: "POST",
               url: "Default.aspx/Foo",
               data: "{}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: function (data) {

                   if (data != "") {
                       $('.divLoadData:last').after(data.d);
                   }
                   $('#divPostsLoader').empty();
               }

           })
       };

divLoadData はデータを (HTML 形式で) 受け取る div ですが、データを asp.net テーブルに追加したいのですが、どうすればデータを追加できますか? 関数の後を使用する必要がありますか?また、このサーバー側のテーブル コントロールに追加する HTML を生成する方法を教えてください。現在、データは次のコードを使用して作成されます (webmethod 関数内):

  foreach (DataRowView myDataRow in dv)
            {
                getPostsText.AppendFormat("<p>author: {0}</br>", myDataRow["author"]);
                getPostsText.AppendFormat("genre: {0}</br>", myDataRow["genre"]);
                getPostsText.AppendFormat("price: {0}</br>", myDataRow["price"]);
                getPostsText.AppendFormat("publish date: {0}</br>", myDataRow["publish_date"]);
                getPostsText.AppendFormat("description: {0}</br></p>", myDataRow["description"]);
            }
            getPostsText.AppendFormat("<div style='height:15px;'></div>");

そして最後getPostsTextにJQueryに送信されます

4

2 に答える 2

1

関数を の外に移動する必要がありますdoc ready:

function lastPostFunc() {
       $('#divPostsLoader').html('<img src="images/bigLoader.gif">');
       $.ajax({
           type: "POST",
           url: "Default.aspx/Foo",
           data: {},
           contentType: "application/json",
           dataType: "json",
           success: function (data) {
               if (data != "") {
                   $('#divDynamicData').append(data.d);
               }
               $('#divPostsLoader').empty();
           }
       });
   }


$(document).ready(function () {
  $(window).scroll(function(){
     if ($(window).scrollTop() == $(document).scrollHeight - $(window).height()) {
         lastPostFunc();
     }
  });
});   
于 2013-03-25T07:31:05.983 に答える
1

jQuery で .after() 関数を使用して、別の要素の後にコンテンツを追加できます。

だから代わりに

$("servers").append( ... );

あなたが使うだろう

$("#" + id + ).closest( "tr" ).after( ... );

または、使用することもできます

$( ... ).insertAfter( $("#" + id ).closest( "tr" ) );

これは本質的に同等です。

詳細については、 http://api.jquery.com/after/を参照してください。

于 2013-03-25T07:21:43.247 に答える