Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 来自服务器端JSON的DataTables可单击行链接_Jquery_Datatables - Fatal编程技术网

Jquery 来自服务器端JSON的DataTables可单击行链接

Jquery 来自服务器端JSON的DataTables可单击行链接,jquery,datatables,Jquery,Datatables,我有一个datatable,在这里我一次加载了所有数据,但我的数据集最终会非常大,所以我决定将所有数据都移动到服务器端 以前,我可以通过使用“数据url”属性将链接嵌入到每一行中,然后使用此函数侦听单击: $('#table tbody').on('click', 'tr', function () { var url = this.getAttribute("data-url") window.open(url, "_self"); }); 它的工作原

我有一个datatable,在这里我一次加载了所有数据,但我的数据集最终会非常大,所以我决定将所有数据都移动到服务器端

以前,我可以通过使用“数据url”属性将链接嵌入到每一行中,然后使用此函数侦听单击:

$('#table tbody').on('click', 'tr', function () {
        var url = this.getAttribute("data-url")
        window.open(url, "_self");
    });
它的工作原理就是这样,但我还没有弄清楚如何使用AJAX和JSON来实现这一点

我的JSON响应如下所示:

 {"recordsFiltered": 1, "recordsTotal": 6, 
 "data": [{"4": "", "6": "", "7": "Online", "3": "", "DT_RowClass": "success",
 "5": "", "data-url": "/relative-url/pk/", "2": "TestType2", 
 "0": "Test", "1": "ABCD"}], "draw": "11"}
但是,我不确定如何让DataTables将数据url属性添加到行中。我一直在浏览文档,试图找到这个用例的一个例子,但到目前为止还没有任何运气

如果没有内置功能,我想我将需要重写DataTables用于加载JSON数据的函数,但我不确定如何做到这一点

我的服务器端语言比javascript好得多,所以如果可能的话,我真的很欣赏更具体的答案


谢谢

您可以使用
fnCreatedRow
回调

根据报告:

创建TR元素(以及所有TD子元素)时调用此函数 元素),或使用DOM源进行注册, 允许操纵TR元素(添加类等)


您可以使用
fnCreatedRow
回调

根据报告:

创建TR元素(以及所有TD子元素)时调用此函数 元素),或使用DOM源进行注册, 允许操纵TR元素(添加类等)


正如上面@cjungel所指出的,这是一种方法。Mor最新版本的DataTable使用。例如,你可以使用这种类型的东西:

"rowCallback": function(row, data, index){
    $(row).attr("data-url", data[1]);
}

照此,。希望这能有所帮助。

正如上面@cjungel提到的那样,这是一种方法。Mor最新版本的DataTable使用。例如,你可以使用这种类型的东西:

"rowCallback": function(row, data, index){
    $(row).attr("data-url", data[1]);
}

照此,。希望能有所帮助。

谢谢,这正是我需要的。我必须将JSON响应“dataURL”更改为“8”,因为它不在该函数的数据列表中。之后,我能够通过调整索引,使用您的示例完美地检索到它。根据文档,这更有效。谢谢,@Gyrocode.com我应该更彻底地阅读文档。谢谢,这正是我所需要的。我必须将JSON响应“dataURL”更改为“8”,因为它不在该函数的数据列表中。之后,我能够通过调整索引,使用您的示例完美地检索到它。根据文档,在这方面效率更高。谢谢,@Gyrocode.com我应该更彻底地阅读文档。谢谢您的回答。我最终还是用了烦扰鼠标的答案,因为我觉得它更简单,但我也很感激你建议的方法。谢谢你的答案。我最终还是选择了烦扰鼠标的答案,因为我觉得它更简单,但我也很欣赏你建议的方法。