首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据表aoColumnDefs未按预期工作

数据表aoColumnDefs未按预期工作
EN

Stack Overflow用户
提问于 2015-07-06 18:16:34
回答 1查看 2.5K关注 0票数 0

我遇到了一个关于Datatable的问题。

代码语言:javascript
运行
复制
<table id="example1" class="table table-bordered table-striped">
                                    <thead>
                                        <tr>
                                            <c:forEach items="${Details.columns}" var="column">
                                                <th>${column.columnTitle}</th>
                                            </c:forEach>
                                        </tr>
                                    </thead>
                                    <tfoot>
                                        <tr>
                                            <c:forEach items="${Details.columns}" var="column">
                                                <th></th>
                                            </c:forEach>
                                        </tr>
                                    </tfoot>
                                    <tbody>
                                        <c:forEach items="${Details.callList}" var="call">
                                            <tr>
                                                <c:forEach items="${call.attributes}" var="attribute">
                                                    <td>${attribute.value}</td>
                                                </c:forEach>
                                            </tr>
                                        </c:forEach>
                                    </tbody>
                                </table>
$("#example1").dataTable({
            'sDom': '"top"i',
            //"aoColumnDefs": [{ "bSearchable": true, "aTargets": [1] }],
            "bPaginate" : true,
            "bLengthChange" : false,
            //"bFilter" : true,
            "bSearchable": true,
            "bSort" : true,
            "bInfo" : true,
            "bAutoWidth" : false,
            "iDisplayLength": 5 
            //}).columnFilter({"aoColumns": [{ "type": "text" }, { "type": "text" }, null]});
        }).columnFilter({"aoColumnDefs": [{ "bSearchable": true, "aTargets": [2] }]});

从上面的代码片段..我正在尝试单独删除最后一列的过滤器/搜索。

在这里,"aoColumns“像预期的那样工作--它在我编码的最后一列中删除了过滤器,但是我不能使用"aoColumns”。因为这个表中的列是动态的/可配置的,所以我很难每次都更改代码。

如果有人能在这里帮我,我将不胜感激..

谢谢,

EN

Stack Overflow用户

发布于 2015-07-06 20:23:09

这就是我使用Datatables的方式,它就像一个护身符。我不在客户端进行排序,我使用AJAX在服务器端进行排序,但是表的配置应该是相同的,除了"bServerSide=true“。如果这解决了您的问题,请让我知道:

代码语言:javascript
运行
复制
 var oTable = $('#tblMainTable').dataTable({
        "searching": false,
        "bStateSave": true,
        "fnStateSave": function (oSettings, oData) {
            localStorage.setItem('jobTitlesDataTables', JSON.stringify(oData));
        },
        "fnStateLoad": function (oSettings) {
            return JSON.parse(localStorage.getItem('jobTitlesDataTables'));
        },
        "pagingType": "full_numbers",
        "bLengthChange": false,
        "bAutoWidth": false,
        "iDisplayLength": 2000,
        "bServerSide": true, // server side 
        "sAjaxSource": BASE_URL + "Job/GetJobTitleMappingDTOs", // AJAX URL
        "bProcessing": true,
        "fnServerData": function (sSource, aoData, fnCallback, oSettings) {
// send data from client-side to server-side
            aoData.push({ "name": "IsMapped", "value": $("#bdgIsMapped").data("selected") });
            aoData.push({ "name": "IsSearchableOption", "value": $("#bdgIsSearchable").data("selected") });
            aoData.push({ "name": "timestamp", "value": new Date().getTime() }); // Added to avoid caching in some IE versions.

            oSettings.jqXHR = $.ajax({
                "dataType": 'json',
                "type": "GET",
                "url": sSource,
                "data": aoData,
                "cache": false,
                "success": function (json) {
                    // shows records count next to the top title
                    if (json.iTotalRecords > 0) {
                        $("#resultsDescription").text(" - " + json.iTotalRecords + " rows.");
                    }
                    else {
                        $("#resultsDescription").text(" - No results.");
                    }
                    // shows paginator when necessary
                    if (json.iTotalRecords > json.iDisplayLength) {
                        $(".dataTables_paginate").show();
                    }
                    else {
                        $(".dataTables_paginate").hide();
                    }
                    $("#isFirstSearch").val("false");

                    fnCallback(json);
                }
            });
        },
        "aoColumnDefs": [
        {
            sType: "numeric",
            mData: "RowNumber",
            aTargets: [0],
            mRender: function (data, type, full) {
// this is for custom rendering a column just in case you need it
                // 'full' is the row's data object, and 'data' is this column's data
                return '<span class="RowNumber">' + full.RowNumber + '</span>';
            }
        },
        {
            sType: "numeric",
            mData: "JobTitleId",
            aTargets: [1],
            mRender: function (data, type, full) {
                // 'full' is the row's data object, and 'data' is this column's data
                return '<span class="EditableJobTitleId" data-job-title-id="' + full.JobTitleId + '">' + full.JobTitleId + '</span>';
            }
        },
        {
            sType: "string",
            mData: "JobTitle",
            aTargets: [2]
        }
],
        "order": [[1, "asc"]] 
    });
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31243247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档