【问题标题】:Rows not showing up in DataTable数据表中未显示的行
【发布时间】:2016-05-10 17:50:52
【问题描述】:

我的视图中有一个这样的数据表:

 <table id="tblProviders" style="font-size:x-small;width:100%; border: 1px solid black;">
                <caption>Assigned Providers</caption>
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Email</th>
                        <th>Phone</th>
                        <th>Role</th>
                        <th>Remove</th>
                    </tr>
                </thead>
            </table>

以及数据的赋值:

 $("#tblProviders").dataTable({
        bProcessing: true,
        sAjaxSource: '@Url.Action("GetProvidersById")?id=' + $("#txtid").val(),
        bJQueryUI: true,
        sProcessing: "<img src='~/Images/spinner.gif' />",
        dom: 'T<"clear">rtip',
        "pageLength": 5,
        bAutoWidth: false,
        "oLanguage": {
            sEmptyTable: "There are no Providers at this time",
            sZeroRecords: "There are no Providers at this time"
        },
        "aoColumns": [
            { "sWidth": "1%", sClass: "smallFonts" },
            { "sWidth": "15%", sClass: "smallFonts" },
            { "sWidth": "15%", sClass: "smallFonts" },
            { "sWidth": "15%", sClass: "smallFonts" },
            { "sWidth": "15%", sClass: "smallfonts" },
            {
                "sWidth": "15%", sClass: "centerbutton", "sName": "UserId", "mRender": function (data, type, row) {

                    return "<button type='button' class='displaybutton' id='" + row[0] + "' onclick=RemoveProvider(this);return false; >Remove</button>";
                }
            }
        ],
        tableTools: {
            "sSwfPath": "../../Scripts/swf/copy_csv_xls_pdf.swf",
            "aButtons": [

            ]

        }
    });
    $("#tblProviders").dataTable().fnSetColumnVis(0, false);
    otab = $("#tblProviders").dataTable();
    otab.fnSort([[1, 'asc']]);

我知道我得到了正确的 JSON 数据:

 [HttpGet]
    public ActionResult GetProvidersId(string id)
    {
        return Json(new
        {
            aaData = Repository.GetProvidersById(id).Select(x => new String[] {
                x.ID.ToString(),
                x.FirstName + " " + x.LastName,
                x.Email,
                x.Phone,
                x.Role,
            })
        }, JsonRequestBehavior.AllowGet);
    }

但是没有一行显示出来。我在这里做错了什么?事实上,如果我通过在删除点放置一个调试点来调试表的加载,我会看到数据,但它永远不会显示。

【问题讨论】:

  • 您使用的是什么版本的 DataTables?
  • @thirtydot 我正在使用 1.10.10
  • 这是一个 jsFiddle,应该会有所帮助:jsfiddle.net/thirtydot/oec7rnd7(我正在使用 jsFiddle 的特殊策略来模拟 JSON 响应)。 mData 很重要,至少对于我选择的数据格式而言。此外,您应该切换到新的 API,它不那么令人困惑。我会尽可能更新我的答案以使其有意义。
  • 这是一个不使用mData 的示例,使用相同的数据格式,我相信您正在使用:jsfiddle.net/thirtydot/oec7rnd7/1。我认为您的问题是您没有像这样包装数据:{"data": [["id 1", "name 1", "email 1", "phone 1", "role 1"], ["id 2", "name 2", "email 2", "phone 2", "role 2"]]}。如果不是这样,我认为这是我从您问题中的代码中看不到的东西。

标签: datatables


【解决方案1】:

不幸的是,问题是由我加载到主视图中的字母搜索引起的。一旦开始过滤并显示部分视图,过滤就会在该部分视图中继续,实际上没有显示任何结果。我还有一个关于这个问题的问题,目前还没有答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2020-04-09
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    相关资源
    最近更新 更多