Javascript 在JQUERY数据表的TR ID中设置数据行主ID
我正在使用ASP.Net MVC并尝试在每个TR#ID属性中设置数据源rowID值。Javascript 在JQUERY数据表的TR ID中设置数据行主ID,javascript,jquery,asp.net,asp.net-mvc,jquery-datatables,Javascript,Jquery,Asp.net,Asp.net Mvc,Jquery Datatables,我正在使用ASP.Net MVC并尝试在每个TR#ID属性中设置数据源rowID值。 问题是我正在获取表id=myDataTable-为第0行请求的未知参数“1”。 控制器返回: var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(List); return Json(new { sEcho = param.sEcho, iTotalRecords = resul
问题是我正在获取表id=myDataTable-为第0行请求的未知参数“1”。
控制器返回:
var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(List);
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = result.Count,
iTotalDisplayRecords = 10,
aaData = json
},
JsonRequestBehavior.AllowGet);
而列表是以下各项的列表:
public class MyObj
{
public string DT_RowId {get;set;}
public string NumeLocatie {get;set;}
}
DataTables初始值设定项为:
oSesizariTable = $('#myDataTable').dataTable({
"scrollY": "600px",
"scrollCollapse": true,
"scrollX": true,
"bServerSide": true,
"sAjaxSource": "ControlSLA/AjaxHandler",
"bProcessing": true,
"aoColumnDefs": [
{
"width": "30",
"class": "details-control",
"orderable": false,
"mdata": null,
"defaultContent": "",
"targets": 0
},
{ "targets": 1, "width": "30", "mdata": "NumeLocatie" },],
"fnServerData": function (sSource, aoData, fnCallback) {
aoData.push({ "name": "DeLa", "value": $('#sesizariDeLa').val() });
aoData.push({ "name": "La", "value": $('#sesizariLa').val() });
$.getJSON(sSource, aoData, function (json) {
fnCallback(json)
});
}
});
$("#Refresh").click(function (e) {
oSesizariTable.fnDraw();
});
我刚开始学习ASP.Net和MVC。。。我无法弄清这件事的真相从控制器发送的数据是:
{ draw = 1, recordsTotal = 2, recordsFiltered = 10, data = "[[\"DT_RowId\":\"ses_35335\",\"NumeLocatie\":\"Galati 1_\"],[\"DT_RowId\":\"ses_35342\",\"NumeLocatie\":\"3 Craiovei\"]]" }
现在的错误是:
表id=myDataTable-请求的未知参数'NumeLocatie'用于
第0行
在错误提示下单击“确定”后,表格将在一行中显示数据中的每个字母。好的,我发现了问题,并决定在此处发布答案,可能其他人也会遇到同样的问题。事实上,正如@MarioLopez所说(感谢您为我指明了正确的方向),数据格式存在问题:
这个 将对象列表括在双引号中:
data = "[[\"DT_RowId\"...
当它应该是:
data = [[\"DT_RowId\"...
因此,我只需将列表直接传递给JSON响应:
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = result.Count,
iTotalDisplayRecords = 10,
aaData = list // this is the list<MyObj> not the jsonSerialiser
},
JsonRequestBehavior.AllowGet);
返回Json(新的
{
sEcho=param.sEcho,
iTotalRecords=result.Count,
iTotalDisplayRecords=10,
aaData=list//这是列表,而不是jsonSerialiser
},
JsonRequestBehavior.AllowGet);
您确定问题只与rowID有关吗?在我看来,您没有将正确的对象传递到表中。表的填充是否正确?您是对的。数据的格式似乎不正确,因为当我从对象列表中创建字符串数组列表并返回该列表时,它工作正常,但我已经验证了序列化列表,它似乎是良好的JSON格式。更新问题以显示数据。回答得很好!我认为你应该把它标记为被接受,它将在将来帮助其他人。
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = result.Count,
iTotalDisplayRecords = 10,
aaData = list // this is the list<MyObj> not the jsonSerialiser
},
JsonRequestBehavior.AllowGet);