如何禁用/启用数据表中的按钮
how to Disable / Enable button in datatable
我想检查文章的状态,如果 true
Edit
按钮将被禁用,否则用户可以单击并切换到 Edit
页面。如何使用?
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1"> Edit </a>';
}}
],
order: [1, 'asc']
});
您正在使用的列渲染函数:
render: function (data) { ... }
能够访问当前行中的所有数据。它的完整签名是:
render: function ( data, type, row, meta ) { ... }
因此,您可以使用 row
参数访问该行中的其他列,例如 row.status
:
{
data: 'id',
className: "center",
title: 'Actions',
render: function (data, type, row, meta) {
if (row.status === true) {
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1"> Edit </a>';
} else {
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1" disabled> Edit </a>';
}
}
}
您可以查看更多详细信息和示例 here。
值得一看的是为什么提供type
参数以及如何使用它。它基本上可以帮助您提供多个版本的值 - table 显示的一个值(HTML link);不同的排序值;过滤的另一个值,依此类推。
因此,例如,对于可点击的 link,您可能希望排序和筛选值只是 data
值(没有任何无关的 HTML)。
但这完全是可选的 - 您不必使用它。有关详细信息,请参阅 orthogonal data。
更新:
我忘记了 hyperlink 不能像按钮一样被禁用(所以你不能使用“禁用”)。相反,您可以查看 these approaches,或按照 TimRoberts 在问题评论中的建议进行操作。话说回来,带row参数的render函数应该就是你需要的了。
else {
return 'Edit'; // or, alternatively: return ''
}
我想检查文章的状态,如果 true
Edit
按钮将被禁用,否则用户可以单击并切换到 Edit
页面。如何使用?
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1"> Edit </a>';
}}
],
order: [1, 'asc']
});
您正在使用的列渲染函数:
render: function (data) { ... }
能够访问当前行中的所有数据。它的完整签名是:
render: function ( data, type, row, meta ) { ... }
因此,您可以使用 row
参数访问该行中的其他列,例如 row.status
:
{
data: 'id',
className: "center",
title: 'Actions',
render: function (data, type, row, meta) {
if (row.status === true) {
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1"> Edit </a>';
} else {
return '<a href="Student/EditArticle/' + data + '" class="btn btn-success mr-1" disabled> Edit </a>';
}
}
}
您可以查看更多详细信息和示例 here。
值得一看的是为什么提供type
参数以及如何使用它。它基本上可以帮助您提供多个版本的值 - table 显示的一个值(HTML link);不同的排序值;过滤的另一个值,依此类推。
因此,例如,对于可点击的 link,您可能希望排序和筛选值只是 data
值(没有任何无关的 HTML)。
但这完全是可选的 - 您不必使用它。有关详细信息,请参阅 orthogonal data。
更新:
我忘记了 hyperlink 不能像按钮一样被禁用(所以你不能使用“禁用”)。相反,您可以查看 these approaches,或按照 TimRoberts 在问题评论中的建议进行操作。话说回来,带row参数的render函数应该就是你需要的了。
else {
return 'Edit'; // or, alternatively: return ''
}