【问题标题】:How to multiply Data in Datatables?如何将数据表中的数据相乘?
【发布时间】:2016-07-21 17:47:11
【问题描述】:

如何将 Datatables 中的数据相乘? 我有如下所示的数据表和 javascript:

$('#xxdata').DataTable( {
        "destroy": true,
        "processing": true,
        "ajax": {
            url  : "xxreport.php",
            type : 'GET',
            data : {
                datedari : SplitRange[0].trim(),
                datesampai : SplitRange[1].trim()
        }
        },
        "columns": [
                { "data": "offerName" },
                { "data": "offerCountry" },
                { "data": "visits" },
                { "data": "conversions" },
                { "data": "profit"}
        ]
} );

我想将{ "data": "profit"} 中的数据相乘
也许像 这个{ "data": "profit" * 0.7}

我可以根据需要更改数据表中的数据吗?或者任何人都可以提供其他解决方案?

谢谢。

【问题讨论】:

  • 您是想在第一次获取数据时乘以它还是在某些事件触发器上?
  • 你试过按照你描述的方式做,发现不行吗?到目前为止,您尝试过什么?
  • 我想在第一次获取数据时乘以它
  • @Zayn 那很简单,columns.render。详情见我的回答。
  • @Chris 哈哈没关系,谢谢

标签: javascript jquery ajax datatables


【解决方案1】:

您可以使用columns.render 选项 (documented here) 来执行此操作。

"columns": [
            { "data": "offerName" },
            { "data": "offerCountry" },
            { "data": "visits" },
            { "data": "conversions" },
            { "data": "profit",
              "render": function (data) {
                            return data * 0.7;
                        }
            }
    ]

在这种情况下,函数签名中的data 表示单元格的数据。还有其他选项可以传递到函数中,但在您的情况下,这些选项不需要包括在内,因为这是一个非常简单的操作。如果您想扩展为更复杂的渲染功能,请参阅文档链接

【讨论】:

    【解决方案2】:

    您必须在列中添加渲染,如下所示:

    { "data": "profit", "render": renderMyProfit}
    

    并且您应该在调用 .DataTable() 函数之前声明渲染函数。

     var renderMyProfit = function (data, type, row, meta) {
                var renderContent = "<div>*</div>";
                return renderContent.replace("*", row.profit * 0.7);
      };
    

    【讨论】:

    • 为什么要对renderContent 进行整体替换?您可以直接返回数据。
    • 克里斯,如果您的需求比乘以一个数字更复杂,那么您已经有了一个 html 返回,这对大多数人都有帮助。
    • 你真的不应该将 HTML 注入到 DataTables 源数据中,注意这不仅仅是一个 HTML 表格,而是一个由 DataTables jQuery 插件增强的表格。
    • 克里斯,你弄错了。如果您查看链接datatables.net/reference/option/columns.render,在示例部分中,有很多示例使用渲染以返回 html。这就是它的本意。
    • 有一个链接和一个跨度,我不确定是否有资格作为很多示例,显然链接必须用 HTML 编码,但足够公平。
    猜你喜欢
    • 2015-09-25
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2021-06-17
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多