2010-12-03 11 views
1

ドロップダウンから新しいオプションを選択するたびにasyncを再構築するテーブルがあります。私は呼び出しを行うことができ、HTMLは正しく生成されますが、ワイヤを渡ってそれを送り返すと、サイズが大きくなると壊れます。一度にHTMLテーブルのセクションをロードするには

解決策は、毎回別々の呼び出しを行うことですべての行が返されるまで、テーブルのクエリセクションになると考えていました。それからTwitterがフィードをどのようにしているのかを考え、ユーザーがリストの一番下までスクロールすればもっと追加します。

提案がありますか?ここで

は、私が何をしようとしているいくつかのコード例です:

$('[id$=ddCorpIngredientClasses]').change(function() { 

     callScriptMethod(
     'IngredientProperties.aspx/ReBuildCorpIngredientTable', 

     { 'ingredientClass': $(this).val() }, 
     function (result) { 
      $('[id$=_SlideOutPanelBodyTable]').empty(); 
      $(result).each(function() { 

       var row = this.toString(); 

       $('[id$=_SlideOutPanelBodyTable]').append(row); 

      }); 
      adjustBodytable(); 
     }); 

    }); 


function callScriptMethod(url, jsonObject, callback, async) { 

    callback = callback || function() { }; 
    async = (async == null || async); 

    $.ajax({ 
     type: 'POST', 

    contentType: 'application/json; charset=utf-8', 
    url: url, 
    data: JSON.stringify(jsonObject), 
    dataType: 'json', 
    async: async, 
    success: function (jsonResult) { 
     if ('d' in jsonResult) 
      callback(jsonResult.d); 
     else 
      callback(jsonResult); 
    }, 
    error: function() { 
     alert("Error calling '" + url + "' " + JSON.stringify(jsonObject)); 
     callback([]); 
    } 
}); 
} 
+1

"サイズが大きくなると壊れます"これはどういう意味ですか?なんて大きい? 「休憩」とはどういう意味ですか?また、GETまたはPOSTを使用していますか? – lonesomeday

+0

コードサンプルはありますか?どのようなプロトコルで、どこからどこまで、あなたは正確に何を送信していますか? – demux

+0

lonesomeday、私はPOSTingしていると私は戻ってほしいと思っているクエリは、約400行があります。休憩すると、サーバーからクライアントに戻ってくることはありません。私はデバッグするとき、それはすべての正しい値を持っていますが、私のJSON呼び出しが戻ってくると死ぬ。 – colemande

答えて

4

SlickGridにAJAXデータソースを使用してください。 (Demos here.

基本的に、一度に50行しか読み込みません。ユーザーがスクロールすると、次の50行が要求され、シームレスにレンダリングされます。さらに、SlickGridはユーザーがスクロールするときにDOM要素を動的に作成して削除します。したがって、画面上の行より物理的に行が多いことはありません。これは、SlickGridが文字通り百万の行をめくることなく処理できることを意味します。

+0

これはクールです。私は彼らのアイディアのいくつかを試してみようと思っています。 – colemande

0

返される行の数を制限するために、バックエンドにページ分割の形式が必要です。次に、JQueryでイベントを発生させて、ページ番号要求をインクリメントしてAJAXを使用して新しい行をテーブルにプルします。

実際の解決策を提供する前に、さらに情報が必要です。

関連する問題