代码之家  ›  专栏  ›  技术社区  ›  harunB10

如何为数据表中的按钮分配ID?

  •  0
  • harunB10  · 技术社区  · 6 年前

    我有一个带有一些内容和编辑按钮的表。这是生成数据表的代码:

    $(document).ready(function() {
        var params = {};
        callFunction("getAgentList", params,
            function(bSuccess, res) {
                var table = $('#example').DataTable({
                    data: res,
                    "columns": [
                        { "data": "ID" },
                        { "data": "Name" },
                        { "data": "AltName1" },
                        { "data": "AltName2" },
                        { "data": "AltName3" },
                        { "data": "AltName4" },
                        { "data": "AltName5" },
                        { "data": "AltName6" },
                        { "data": "AltName7" },
                        { "data": "AltName8" },
                        { "data": "AltName9" },
                        { "data": "AltName10" },
                        {
                            "orderable": false,
                            "data": null,
                            "defaultContent": '<button class="btn btn-warning" id='+res+' onclick="edit(this)">Edit</button>'
                        },
                    ],
                    "order": [
                        [1, 'asc']
                    ]
                });
            }
        );
    });
    

    每行都应该有一个编辑按钮来编辑指定的行。为了这个我需要一个身份证 res 杰森。但我不确定如何获取每个编辑按钮的ID?

    如果我只 物件 我有对象或 res.ID 它是未定义的。这很有意义,因为我需要循环数组…

    有人吗?

    编辑

    这是 物件 杰森:

    { AltName1: "Test1", AltName10: "", AltName2: "Test1Alt", AltName3: "Test1", AltName4: "Test1", ID: "1" }
    { AltName1: "Test2", AltName10: "", AltName2: "", AltName3: "", AltName4: "", ID: "2" }
    

    如果我将ID设置为 <button class="btn btn-warning" id='+res[0].ID+' onclick="edit(this)">Edit</button>

    然后所有按钮都有相同的ID。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Mabrouki Fakhri    6 年前

    在javascript中将所有的第一个字母都改为小写,然后使用datatable的render函数:

     { "targets": 0, "data": 'iD' },
    { "targets": 1, "data": 'name' },
    { "targets": 2, "data": 'altName1' },
    { "targets": 3, "data": 'altName2' },
    { "targets": 4, "data": 'altName3' },
    { "targets": 5, "data": 'altName4' },
    { .... },
    {
        "targets": 6,
        "data": 'iD',
        "render": function (data, type, row, meta) {
            return '<button class="btn btn-warning" id='+data+' onclick="edit(this)">Edit</button>'
        }
    }
    

    在“渲染”功能中,可以使用不同的方式访问ID: 1:“data”:“id”,然后使用数据(和我一样) 2:“data”:“任意所需”,然后使用:row.id

    另外请注意,您需要在ID之前添加前缀,以避免重复的ID(我总是这样做)

        2
  •  0
  •   Saurabh Sharma    6 年前

    试试这个

    "defaultContent": '<button class="btn btn-warning" id='+ID+' onclick="edit('+ID+')">Edit</button>'