5

私はasp.net mvc5を使用しており、jquery datatableプラグインのサーバー側処理を使用しようとしています。サーバー側処理のチュートリアルでは、サーバーからの結果を返すための形式が示されています。しかし、私のプロジェクトの違いは、サーバーから 'データ'の型付き配列を送信できないことです。私はすべてのhtmlタグを文字列としてtbody全体を送信しています。私のdatatableコードは以下の通りです。なぜjquery datatable server side processing ajaxで成功を収められないのですか?

var e = t.DataTable({processing: true, 
     serverSide: true, 
     info: true, 
     stateSave: true, 
     PaginationType: "full_numbers", 
     ajax:{ 
      "url": '@Url.Action("AjaxGetJsonData","Define",new { tablename= @HttpContext.Current.Request.QueryString["tablename"] })', 
      "type": "GET", 
      "success": function (result) { 
       console.log(result); 

       $("#sample_1").find("tbody").html(result.data); 
       $("#sample_1_processing").hide(); 
       Init(); 
       //var oSettings = $("#sample_1").dataTable().fnSettings(); 
       //oSettings.iTotalRecords = result.recordsTotal; 

      } 

     } 

アヤックスの結果は、以下のようにのようなものであるビューは、多くのテーブルのための一般的であり、多くの状況があるので

Object {draw: 1, iTotalRecords: 25000, iTotalDisplayRecords: 0, data: Array[1]} 

データは

<tr><td></td><td></td><td></td><td></td></tr> 

のようなものであることI私はStringBuilderをサーバー側で使用しています。私が成功をajaxに置くと、ページ設定要素はdatatableの最後に消えます。なぜAJAXで成功を収められないのですか?私はdatatableのすべての機能を持っており、iTotalRecordsのような機能を手動で設定する方法はありますか?私はここdatatableフォーラムではない知っている。私はこれについて残念ですが、私は多くの時間を費やし、解決策を見つけることができません。私は手動でajax成功のdatatableのすべての機能を処理したい。私はdatatableの最後のバージョンを使用しています。

+0

PartatableViewをDatatableに使用していないのはなぜですか? –

+0

@Alorikaあなたの助けに感謝します。私はすでにテーブルの部分ビューを使用しています。 – emres

答えて

2

私は最後に私の問題を解決しました。興味深いことがありますが、私は今成功を収めることができます。

var e = t.DataTable({ 
     processing: true, 
     serverSide: true, 
     info: true, 
     stateSave: true, 
     PaginationType: "full_numbers", 
     "sAjaxSource": '@Url.Action("AjaxGetJsonData","Define")', 
     "fnServerData": function (sSource, aoData, fnCallback) { 
      aoData.push({ "name": "tablename", "value": $("#temprory").val() }); 
      console.log(aoData); 
      $.ajax({ 
       url: sSource, 
       type: "POST", 
       data: aoData, 
       success: function (msg) { 
        fnCallback(msg); 
        console.log(msg); 
        $("#sample_1").find("tbody").html(msg.data); 
        $("#sample_1_processing").hide(); 
        Init(); 
       } 
      }); 
     } 

興味深い点は、あなたがfnCallback(MSG)、改ページが消え含まれるデータテーブルの下の部分を削除した場合ということです。私はそれが何を正確に知っていないが、これは私の問題を解決した。

+0

ところで、Init()は問題に関連していません。データ化可能ではありません。 – emres

関連する問題