0

サーバー側の処理を使用して、データ テーブルにデータをロードする必要があります。

カスタムの書式設定を行うために、カスタム JSON オブジェクトを datatables オブジェクトの aaData プロパティに返す必要があります。文字列の配列を単純に返すことはできません。

これは、配列を返すコントローラー アクションです (これを更新する必要があります)。

 var result = from u in filteredResults
                     select new string[] {Convert.ToString(u.userId), u.userName, u.roleId.ToString(), u.type, u.isActive.ToString(), u.firstName, u.lastName, 
                     u.email, u.phone, u.Postcode, u.Street, u.Street, u.company, u.jobId.ToString(), u.job, u.country, u.countryName, u.City, u.LoginsNum.ToString(), 
                     u.LastLogin.ToString()};           

        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = result.Count(),
            iTotalDisplayRecords = result.Count(),
            aaData = result  ** NOT OK; must be updated **
        }, JsonRequestBehavior.AllowGet);

結果のオブジェクトは次の形式である必要があります。

[
 { "prop1": "val1",
   "prop2": "val2",
    ......
   "propn": "valn"
 },
 .................


 { "prop1": "val1",
   "prop2": "val2",
    ......
   "propn": "valn"
 },

] 
4

2 に答える 2

0

私が実際に行ったことは、動的オブジェクト構文を使用して、返された JSON 配列を次のようにフォーマットすることでした。

var result = from u in filteredResults
                     select new 
                     {
                         id = Convert.ToString(u.userId), 
                         userName = u.userName, 
                         roleId = u.roleId.ToString(), 
                         roleName = u.type, 
                         isActive =  u.isActive == true ? "Active" : "Inactive", 
                         firstName = u.firstName, 
                         lastName = u.lastName, 
                         email = u.email, 
                         phone = u.phone,
                         postcode = u.Postcode, 
                         street = u.Street, 
                         company = u.company, 
                         jobId = u.jobId.ToString(),
                         job = u.job, 
                         //countryKey = u.country, 
                         countryName = u.countryName, 
                         city = u.City, 
                         loginsNum = u.LoginsNum.ToString(), 
                         lastLogin = u.LastLogin.ToString()
                     };

        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = result.Count(),
            iTotalDisplayRecords = result.Count(),
            aaData = result
        }, JsonRequestBehavior.AllowGet);
于 2013-09-23T08:52:07.743 に答える
0

リストをJSON文字列として作成する必要があり、アクションの戻り値の型はJsonResult

public JsonResult GetData()
{
     var list = filteredResults.Select(temp => new[] { temp.userId.ToString(), temp.userName.ToString(), temp.email.ToString(), temp.phone.ToString(), temp.Postcode.ToString(), temp.Street.ToString(), temp.LastLogin.ToString() }).FirstOrDefault();
     return Json(list, JsonRequestBehavior.AllowGet);
}

GetData() アクションを呼び出す必要があり、それが返されJSONます。

于 2013-09-23T08:02:07.993 に答える