【问题标题】:JQuery datatables adding column classes to dynamic content将列类添加到动态内容的 JQuery 数据表
【发布时间】:2015-02-26 04:33:20
【问题描述】:

我有一个包含动态列的数据表

<table id="dt_basic" width="100%" class="table table-striped table-bordered table-hover tableSearch">
    <thead>
        <tr>
            @foreach (var item in Model.ColumnInfo) {
            <th>@Html.Raw(@item.ColumnHeader) </th>
            }
            <th>Edit</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

我想在填充数据表后设置列类型和列类

    var table = $('#dt_basic').dataTable({
        "pagingType": "full_numbers",
        "ajax": "@Url.Action("LoadResultGrid", "Verifications", new { id = Model.RunId })",
        "deferRender": true,
        "bProcessing": true,
        "scrollX": "100%",
        "columnDefs": [
            {
                "targets": [0],
                "visible": false,
                "searchable": false
            },
            {
                "targets": [1],
                "searchable": true,
                "visible": true
            }
        ]
    });

Model.ColumnInfo 是具有属性的对象列表:ColumnHeader、ColumnType、ColumnClass。

所以我需要在创建表后遍历列并将列标题与 Model.ColumnInfo.ColumnHeader 匹配,然后将列类型设置为对应的 Model.ColumnInfo.ColumnType 并将列类设置为对应的 Model .ColumnInfo.CoulmnClass。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: c# jquery jquery-datatables


    【解决方案1】:

    我想出了如何解决我的问题,并认为我会分享它以防其他人遇到类似问题。

    我添加了 razor 代码来生成将 clasName 属性动态添加到 columndefs 的 javascript。

        var table = $('#dt_basic').dataTable({
            "pagingType": "full_numbers",
            "ajax": "@Url.Action("LoadResultGrid", "Verifications", new { id = Model.RunId })",
            "deferRender": true,
            "bProcessing": true,
            "scrollX": "100%",
            "columnDefs": [
                {
                    "targets": [0],
                    "visible": false,
                    "searchable": false
                },
                @for(var i = 0; i < (Model.ColumnHeaders.Count); i++){
                    if (Model.ColumnHeaders[i].ColumnClass != null)
                    {
                        @: {"targets": [@i], "className": "@Model.ColumnHeaders[i].ColumnClass"},
                    };
                }
            ]
        });
    

    解析的javascript sn-p:

            "columnDefs": [
                {
                    "targets": [0],
                    "visible": false,
                    "searchable": false
                },
                         {"targets": [5], "className": "do_rightalign"},
                         {"targets": [6], "className": "do_rightalign"},
                         {"targets": [7], "className": "do_rightalign"},
                         {"targets": [8], "className": "do_rightalign"},
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多