【问题标题】:Dynamically add id to datatable row based on AJAX response根据 AJAX 响应动态添加 id 到数据表行
【发布时间】:2020-03-28 22:13:31
【问题描述】:

我已经看到有关使用行回调 here 为数据表行提供任意 ID 的帖子。我想根据我的 AJAX 响应 dataToUse 给行特定的 ID;每行都会有一个唯一的 id,作为 JSON 对象的一个​​字段。这是我的数据表的结构:

table = $('#_table').dataTable({
                ajax: function (data, callback, settings) {
                    $.ajax({
                             type: "post",
                             url: '/test/getvalues',
                             dataType: "json",
                             success: function (result) {
                                var dataToUse = {};
                                dataToUse.data = result.map.count;
                                callback(dataToUse);
                             }
                           });
                  }
        })

}

【问题讨论】:

    标签: javascript jquery datatable


    【解决方案1】:

    这个post的答案已经贴在这里,给出了答案,

        'fnCreatedRow': function (nRow, aData, iDataIndex) {
            $(nRow).attr('id', 'my' + iDataIndex); // or whatever you choose to set as the id
        },
    

    aData 不知何故是我收到的 AJAX 数据。这对我来说就像魔法一样,但它奏效了!

    【讨论】:

      【解决方案2】:

      您是否只想根据从 dataToUse 获得的信息对特定行执行一些操作?首先,我将描述您提供的示例中发生的行为。代码如下:

      if ( data[5].replace(/[\$,]/g, '') * 1 > 150000 ) {
          $('td', row).eq(5).addClass('highlight');
      }
      

      检查数据中的第 6 项,即薪水,是否大于 150,000,如果是,则使用 CSS 选择器通过 jQuery 选择该项,然后向其添加一个类。

      根据您的问题,您希望根据 result 提供给 dataToUse 的一些数据执行类似的表修改行为。在这种情况下,result 需要提供某种信息,允许您构造适当的 jQuery 选择器,$(someSelector) 来选择您要修改的行,然后您可以根据需要修改它们。您可以在成功功能中执行所有这些操作。

      如果您想为它们添加一些特定的样式或行为,我建议更新它们的类而不是 id。更新 id 往往是不好的做法。

      【讨论】:

      • 您好,感谢您的建议。我遇到了这个帖子stackoverflow.com/questions/21114555/…,似乎使用'fnCreatedRow'函数,我将能够访问每一行并给它一个ID。我想给每一行一个ID。假设我的成功函数将获得 [“id”:“1234”、“name”:“wendy”、“count”:“3”] 的结果对象。我想获取该 ID 并将其提供给我的数据表中名称为 wendy 且计数为 3 的行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 2013-07-24
      • 1970-01-01
      相关资源
      最近更新 更多