【问题标题】:jQuery DataTables ajax format datajQuery DataTables ajax 格式数据
【发布时间】:2013-01-04 14:49:54
【问题描述】:

是否可以在使用DataTables sAjaxSource": "URL"? 将Ajax 数据插入页面之前对其进行格式化

我目前正在获取以下 JSON 数组:

{
    "aaData": [
        {
            "Name": "Trident",
            "Link": "http://google.com"
        }
    ]
}

我可以使用以下方法将其插入名称并链接到数据表中:

var oTable = $('#example').dataTable({
    "bProcessing": true,
    "sAjaxSource": "sources/myData.json",
    "sAjaxDataProp": "items",
    "aoColumns": [
        { "mData": "Name" },
        {"mData": "$Link" }
    ]
});

但是,我想将其作为单个 Anchor 元素插入,其中包含 Text= Name 和 href = Link。 这可能吗?

PS:我尝试了什么:我查看了抛出示例并用谷歌搜索但一无所获。

【问题讨论】:

  • 所以你想要 1 列而不是 2 列?但作为主播?

标签: jquery ajax datatable


【解决方案1】:

我是旧 fnRender 方法的老手,但我相信现在使用 mRender 可以做到这一点:

var oTable = $('#example').dataTable({
    "bProcessing": true,
    "sAjaxSource": "sources/myData.json",
    "sAjaxDataProp": "items",
    "aoColumns": [
        //{ "mData": "Name" },
        { "mData": "Link",
          "mRender": function (data, type, full) {
              return '<a href="' + full[1] + '">' + full[0] + '</a>';
          } }
    ]
});

PS:我对此进行了编辑以反映您的评论,澄清您希望它在一个列中。取消注释 { "mData": "Name" }, 行以重新添加名称列。还请记住,您的表定义也应更改为一或两列。

【讨论】:

  • 很好,但是如果我跳过 mRender 函数并使用函数作为 mData 可以吗? ("mData": function (source, type, val) { return '' + source.$name + ''; })
  • 我自己也想知道。很长一段时间以来,我一直在使用旧版本,所以我对 mData 属性以及它的功能范围很陌生。我担心您发布的功能会转义为文本而不是作为 HTML 输出打印 - 我只能说试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2015-01-04
相关资源
最近更新 更多