Javascript 具有2个数据表链接的自定义列
我有一个DataTables,它有一个带有链接的自定义列。它起作用了。但在我有了另一个链接后,它就不起作用了。错误是Javascript 具有2个数据表链接的自定义列,javascript,datatables,Javascript,Datatables,我有一个DataTables,它有一个带有链接的自定义列。它起作用了。但在我有了另一个链接后,它就不起作用了。错误是 Uncaught TypeError: Cannot read property 'style' of undefined at Xa (jquery.dataTables.min.js:79) at za (jquery.dataTables.min.js:65) at e (jquery.dataTables.min.js:110) at HT
Uncaught TypeError: Cannot read property 'style' of undefined
at Xa (jquery.dataTables.min.js:79)
at za (jquery.dataTables.min.js:65)
at e (jquery.dataTables.min.js:110)
at HTMLTableElement.<anonymous> (jquery.dataTables.min.js:110)
at Function.each (jquery-3.5.1.js:381)
at jQuery.fn.init.each (jquery-3.5.1.js:203)
at jQuery.fn.init.u [as dataTable] (jquery.dataTables.min.js:100)
at jQuery.fn.init.k.fn.DataTable (jquery.dataTables.min.js:184)
at Object.success (Customers:73)
at fire (jquery-3.5.1.js:3496)
Uncaught TypeError:无法读取未定义的属性“style”
在Xa(jquery.dataTables.min.js:79)
at za(jquery.dataTables.min.js:65)
at e(jquery.dataTables.min.js:110)
在HTMLTableElement`
元(新台币).html(a);;
}
},
]
});
对于2个链接,非工作代码为:
$('#tbl').DataTable({
data: result,
columns: [
{ data: 'id' },
{
"data": "id",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
const a = `<a href=${webApiBaseUrl}/Customers/${oData.id}>Edit</a>`
$(nTd).html(a);
}
},
{
"data": "id",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
const a = `<a href=${webApiBaseUrl}/Customers/${oData.id}>Delete</a>`
$(nTd).html(a);
}
},
]
});
$('#tbl')。数据表({
数据:结果,
栏目:[
{data:'id'},
{
“数据”:“id”,
“fnCreatedCell”:功能(nTd、sData、oData、iRow、iCol){
常数a=``
元(新台币).html(a);;
}
},
{
“数据”:“id”,
“fnCreatedCell”:功能(nTd、sData、oData、iRow、iCol){
常数a=``
元(新台币).html(a);;
}
},
]
});
我建议使用函数而不是fnCreatedCell
,因为这样可以为一个单元格创建两个链接
在我的简单测试用例中,如下所示:
$('#tbl')。数据表({
数据:结果,
栏目:[
{“数据”:“id”},
{
“数据”:“id”,
“呈现”:函数(数据、类型、行、元){
如果(类型==‘显示’){
返回“”;
}否则{
返回数据;
}
}
}
]
});
当然,您需要编辑我的代码才能使用相关的URL
包含type==“display”
的行用于处理。在本例中,它可能不是严格必需的,但它允许您在表中显示一个值(HTML字符串),同时对不同的值(普通ID,不带HTML)进行排序和过滤
这将创建一个包含两列的表:
它假设源数据如下所示:
var结果=[
{
“id”:“1”,
“姓名”:“老虎尼克松”
},
{
“id”:“2”,
“名称”:“爱里佐藤”
}
];
$('#tbl').DataTable({
data: result,
columns: [
{ data: 'id' },
{
"data": "id",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
const a = `<a href=${webApiBaseUrl}/Customers/${oData.id}>Edit</a>`
$(nTd).html(a);
}
},
{
"data": "id",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
const a = `<a href=${webApiBaseUrl}/Customers/${oData.id}>Delete</a>`
$(nTd).html(a);
}
},
]
});