代码之家  ›  专栏  ›  技术社区  ›  Snake Eyes

使用ASP.NET核心的自定义html属性对datatable中的列进行排序

  •  0
  • Snake Eyes  · 技术社区  · 7 年前

    我有一个有三列的表: Id , Name Size

    在MVC视图中,我喜欢:

    <table class="table table-hover">
        <thead>
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Size</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.Items)
            {
                <tr>
                    <td>
                        @item.Id
                    </td>
                    <td>
                        @item.Name
                    </td>
                    <td>
                        <span data-sort="@item.SizeVal">
                            @item.Size
                        </span>
                    </td>
                </tr>
            }
        </tbody>
    </table>
    

    这个 大小 看起来像: 15 MB 1.25 GB

    SizeVal 从…起 data-sort 属性是从MB、GB转换为字节的数字。

    datatable 对象

    var $fileTable = $(".table");
    
    var dtable = $fileTable.DataTable({
        "columnDefs": [
            { "type": "any-number", targets: 2 }
        ],
        order: [[2, "desc"]],
        //responsive: true,
        stateSave: true,
        pageLength: 25
    });
    

    我想在排序大小列时,应该考虑从 数据排序 属性

    我试过了

    "columnDefs": [
       { "type": "any-number", targets: 2 }
    ],
    

    但不是很好。

    如何做到这一点?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Alexandre Elshobokshy    7 年前

    数据表读取 data-sort td .

    因此,与其把它放在跨度中,不如把它放在 运输署 如这里的HTML部分所示 here

    <td data-sort="@item.SizeVal">
        @item.Size
    </td>
    

    请同时阅读 documentation 解释一下。