正在JQUERY数据表的TR ID中设置数据行主ID

Setting data row primary ID in TR ID for JQUERY Datatables

本文关键字:ID 置数据 正在 数据表 TR JQUERY      更新时间:2023-09-26

我正在使用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 = 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'"]]" }

现在的错误是:

table id=myDataTable-请求的未知参数"NumeLocatie"第0行

在错误提示下单击"确定"后,该表在1行中显示数据中的每个字母。

好吧,我发现了问题,并决定在这里发布答案,也许其他人也会有同样的问题。事实上,正如@MarioLopez所说(感谢你为我指明了正确的方向),数据格式存在问题:
这个

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(List);

用双引号括起了对象列表:

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);