2016-07-31 11 views
1

これはケースです。データテーブル内のjson形式でコントローラからデータを取得

  • 私はテーブル内のjsonデータをバインドするためにdatatable jsでajax呼び出しを使用しています。
  • 今私はデータバインディングのために直接jsonファイルを使用しています。
  • 今私は メソッドをjson値を返す私のコントローラの中に書き込んだ私のdbのデータにアクセスしたいと思います。
  • しかし私はjsonファイルをajaxで呼び出すようにこのメソッドを呼び出すことができません。親切にソリューションを提案してください。以下は

    は、コードサンプル

    var table = $('#example').DataTable({ 
         "ajax": "/content/data/dataList.json", //here I want the url of my method. 
         "bDestroy": true, 
         "iDisplayLength": 15, 
         "columns": [ 
          { 
           "class": 'details-control', 
           "orderable": false, 
           //"data": null, 
           "defaultContent": '' 
          }, 
          { "data": "name" }, 
         ], 
         "order": [[1, 'asc']], 
         "fnDrawCallback": function (oSettings) { 
          runAllCharts(); 
         } 
        }); 
    

そして、私のメソッドIDです:

//Controller Name AppDetail 
    public string getData(string ddlid) 
    { 
     DataTable ddl = new DataTable(); 
     string query = string.Empty; 
     if (ddlid == "O1") 
     { 
      query = "SELECT for O1"; 
     } 
     else if (ddlid == "O2") 
     { 
      query = "SELECT for O2"; 
     } 
     con.Open(); 
     MySqlDataAdapter da = new MySqlDataAdapter(query, con); 
     da.Fill(ddl); 
     con.Close(); 
     System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
     return jSearializer.Serialize(ddl);    
    } 

そして、ここでは、JSONデータサンプルが

{ 
    "data": [ 
     { 
      "name": "Aladdin" 
     } 
    ] 
} 

で親切に助けて。 DataTableの

答えて

0

あなたのコントローラがあなたがDataTableの前にそれを呼び出し、データを介してデータを挿入することができます動作する場合(https://datatables.net/reference/option/data)ソースは、サーバー側の処理方法を使用していない場合は、AJAXのメソッドを使用して最初にすべてのデータを取得し、それを使用データテーブルのデータ。下のコードを見てください...それはあなたにいくつかのアイデアを得るのを助けるかもしれません。

$.ajax({ 
      url: 'api/AppDetail/getData', 
      method: 'get', 
      data :{ddlid:'01'},   // this is input parameter for your function 
      dataType: 'json', 
      contentType: 'text/json', 
      success: function(res){ 
       var table=$('#example').dataTable({ 
        data: res, 
        columns:[ 
          {'data':'name'} 
         ], 
        bDestroy : true, 
       iDisplayLength : 15, 
       }); 
      } 
     }); 
1

0

コントローラで、uが必要なデータを取得している場合、このデータを部分ビューに戻すことができます。 部分的なビューは何もhtmlテーブルではありません。 次に、この部分的なビューを返すようにajaxを呼び出します。成功すると、データテーブルのプラグインを適用できます。

<div id=MyTable></div> 
$.ajax({ 
     type: 'GET', 
     url: ControllerName/ActionName=partialView Which makes table. 
     success: function (data) { 
      debugger; 
      $('#MyTable').html(data); //Puting result of ajax call to the div which containg Id, 
      $('#PartilView_Table').DataTable({ // Applying DataTable Plugin table inside partialView        
       "bProcessing": true, 
       "bDeferRender": true, 
       "scrollX": true, 
       "stateSave": true, 
       "bAutoWidth": true, 
       "bSort": false, 
       "columnDefs": [ 
        { 

        } 
       ] 
       }); 
     }, 
     }); 

これは

..あなたを助けることを願っています
関連する問題