【问题标题】:binding jquery datatable gives error "Requested unknown parameter '0' from the data source for row 0"绑定 jquery 数据表给出错误“从第 0 行的数据源请求未知参数 '0'”
【发布时间】:2014-10-17 06:08:20
【问题描述】:

我正在使用 jquery 为 jquery 数据表创建 json 格式, 但它给出错误“DataTables 警告(表 id = 'tblDynamicModifierItems2'):从第 0 行的数据源请求未知参数 '0'”

我的 HTML 是

 <table id="tblDynamicModifierItems" class="tblDynamicModifierItems table table-hover table-nomargin dataTable table-bordered dataTable-scroller dataTable-tools">
                                <tbody></tbody>
                            </table>

我的 Jquery 代码是

var aaData = [];
     var ModifierItemCode = "1";
            var Description = "10 cane rum"
            aaData.push({
                "ModifierItemCode": ModifierItemCode,
                "ModifierItem": Description,
                "Delete": "Delete"
            });

     var oTable = $("#tblDynamicModifierItems").dataTable({
                    "aaData": aaData,
                    "aoColumns": [{ "bVisible": false }, { "sTitle": "Description" }, null],

                });
                oTable.fnSort([[1, 'asc']]);

谁能帮我解决这个问题?

【问题讨论】:

    标签: javascript jquery jquery-datatables jquery-datatables-editor


    【解决方案1】:

    您需要正确地进行标记。 jQuery dataTables 对此非常敏感。定义标题 &lt;th&gt; 很重要,这样 dataTables 就有机会知道每行数据应该有多少列。

    <table id="tblDynamicModifierItems" class="tblDynamicModifierItems table table-hover table-nomargin dataTable table-bordered dataTable-scroller dataTable-tools">
        <thead>
           <tr>
               <th>ModifierItemCode</th>
               <th>ModifierItem</th>
               <th>Delete</th>
            </tr>
        </thead>    
        <tbody></tbody>
    </table>
    

    此外,您必须告诉 dataTables 每个aaData 项目的哪一部分应该对应于哪一列:

    var oTable = $("#tblDynamicModifierItems").dataTable({
         "aaData": aaData,
         "aoColumns": [
             { mDataProp : "ModifierItemCode" },
             { mDataProp : "ModifierItem" },         
             { mDataProp : "Delete" }
         ]     
    });
    

    您在演示中的代码 -> http://jsfiddle.net/s9Lag6mc/

    关于您的"aoColumns": [{ "bVisible": false }, { "sTitle": "Description" }, null],,我不完全确定您要做什么,但如果您想隐藏第一列,只需将bVisible: false 添加到第一个aoColumns 项目,依此类推。


    至于您的fnCreatedRow 问题:想想看,您正在插入一个对象。所以而不是alert(aData[0])(或其他)只是

    alert(aData.ModifierItemCode);
    

    分叉小提琴 -> http://jsfiddle.net/0aLys2d3/

    【讨论】:

    • 非常感谢您的快速回复,您的代码运行良好,非常感谢您。
    • 我还有一个问题,我想在创建行时设置属性 ID,所以我这样做, var oTable = $("#tblDynamicModifierItems").dataTable({ "aaData": aaData , "fncreatedrow": function (nrow, adata, idataindex) { alert("Abhijit") $(nrow).attr('id', 'tr' + adata[0]); }, "aoColumns": [ { mDataProp : "ModifierItemCode" }, { mDataProp : "ModifierItem" }, { mDataProp : "删除" } ] });但在这里我没有收到我的警报。任何原因
    • @AbhijitPandya 不客气 :) 你试过fnCreatedRow 吗? C 和 R 大写。 JS 变量区分大小写,数据表触发 fnCreatedRow 而不是 fncreatedrow
    • 我没试过这个,现在它工作了,我现在很警觉,再次非常感谢你。
    • 同上,而 fnCreatedRow,我无法获得 aData[0],我在这里“未定义”..
    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 2014-09-16
    • 2019-01-28
    • 2012-08-30
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多