2017-08-10 5 views
0

データが10,000を超える可能性がありますが、エラーが発生するため、jQueryデータ型の処理にサーバー側を使用しています。私は、C#での純粋なjQueryのWebサービス 私のWebサービスはokステータスで返信しますが、データテーブルを満たさないのはなぜですか?

をの.asmx使用してい

のDataTable警告:テーブルID =例 - 私がチェック行0のために要求未知パラメータ 'ユーザー名'、列0

返信ステータスとそれはOKです200また私は応答セクションでチェックされたJSONデータが返されますが、上記のエラーが依然としてあります。

コード:

function show() 
{     
    $('#example').DataTable 
    (
     { 
      //data: data, 
      columns: 
      [      
       {'data': 'UserName'}, 
       {'data': 'Password'}, 
      ], 
      bServerSide: true, 
      sAjaxSource: 'http://localhost:8373/himher.asmx/getUsers', 
      sServerMethod: 'post' 
     });    
} 

<div class="container-fluid"> 
    <table id="example" class="display" width="100%"></table> 
</div> 

私は、上記の関連するコードを入れています。

C#のWebMethod属性:

[WebMethod(EnableSession = true)] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] 
public void getUsers(int iDisplayLength, int iDisplayStart, int iSortCol_0, string sSortDir_0, string sSearch) 
{ 
    try 
    { 
     basicoperation bop = new basicoperation(); 
     DataTable dt; 

     dt = bop.getUsers(iDisplayLength, iDisplayStart, iSortCol_0, sSortDir_0, sSearch); // fetching users 

     dt.TableName = "usersDT"; // a datatable must be named before serialization 

     DataRow dr = dt.Rows[0]; 

     string jsonDataTable = JsonConvert.SerializeObject(dt); //a data table must be serialized before transmitting 

     var retObj = new 
     { 
      iTotalRecords = dr["TotalCount"].ToString(), 
      iTotalDisplayRecords= dt.Rows.Count, 
      aaData = jsonDataTable 
     }; 

     JavaScriptSerializer js = new JavaScriptSerializer(); 

     Context.Response.Write(js.Serialize(retObj)); // converting a .net object to JSON 

    } 
    catch (Exception ex) 
    { 
     throw ex; 
    }  

} 

リターン:

{"iTotalRecords":"19","iTotalDisplayRecords":5,"aaData":"[{\"RowNum\":2,\"TotalCount\":19,\"Id\":39,\"UserName\":\"adsbkj\",\"Password\":\"23123\"},{\"RowNum\":3,\"TotalCount\":19,\"Id\":40,\"UserName\":\"adsbkj\",\"Password\":\"23123\"},{\"RowNum\":4,\"TotalCount\":19,\"Id\":37,\"UserName\":\"asd\",\"Password\":\"23\"},{\"RowNum\":5,\"TotalCount\":19,\"Id\":2,\"UserName\":\"asd\",\"Password\":\"asdasd\"},{\"RowNum\":6,\"TotalCount\":19,\"Id\":5,\"UserName\":\"asd\",\"Password\":\"asda\"}]"} 
+0

'DataTables warning:table id = example - 行0、列0に不明なパラメータ 'UserName'が要求されました。特定の行を指摘してください。例外がある場合は、例外のスクリーンショットを含めてください。 – mjwills

答えて

1

one.for無効のNULL値を渡すのいずれかJSON形式をJsonConvert.SerializeObject(dt)と2回入力すると、不正なデータになります。

私はC#のエキスパートではありませんが、これが役立ちます。

var retObj = new 
{ 
    iTotalRecords = dr["TotalCount"].ToString(), 
    iTotalDisplayRecords= dt.Rows.Count, 
    aaData = dt 
}; 
関連する問題