根据另一列中的数据隐藏Datatables.net表中的元素
我有一个datatable,最近我改为使用AJAX数据源方法。 这是一种享受。 我在第一列中添加了三个按钮(有效,没有问题),现在我想根据另一列中的数据有条件地显示/隐藏第三个按钮。如果data:PublishStatus=“未创建班次”,我不想显示第三个按钮 我看过: 但是我不能把我的脑袋绕到需要的东西上来,因为条件是基于一个列而不是我正在使用的列。如果我把按钮放在PublishStatus列中,我可以看到如何做根据另一列中的数据隐藏Datatables.net表中的元素,datatables,Datatables,我有一个datatable,最近我改为使用AJAX数据源方法。 这是一种享受。 我在第一列中添加了三个按钮(有效,没有问题),现在我想根据另一列中的数据有条件地显示/隐藏第三个按钮。如果data:PublishStatus=“未创建班次”,我不想显示第三个按钮 我看过: 但是我不能把我的脑袋绕到需要的东西上来,因为条件是基于一个列而不是我正在使用的列。如果我把按钮放在PublishStatus列中,我可以看到如何做 "ajax": "dt-data_list_wo.
"ajax": "dt-data_list_wo.asp?mf=d",
"columns": [
{"data": "GUID" , render : function ( data, type, row, meta ) {
return type === 'display' ?
'<span style="display: inline-block;"><form method="POST" action="requestwo.asp"><input type="hidden" name="itemGUID" value="'+ data +'"/><input type="hidden" name="action" value="wodetails" /><button type="submit" class="btn btn-fill btn-info" style="margin-right: 5px">Details</button></form></span><span style="display: inline-block;"><form method="POST" action="prepub.asp"><input type="hidden" name = "itemguid" value = "' + data + '"><input type="hidden" name="action" value="view" /><input type="hidden" name="backlink" value="listwo.asp"/><button type="submit" class="btn btn-fill btn-warning" style="margin-right: 5px">View RS</button></form></span><span style="display: inline-block;"><form method="POST" action="prepub.asp"><input type="hidden" name = "itemguid" value = "' + data + '"><input type="hidden" name="action" value="publish_shifts" /><button type="submit" class="btn btn-fill btn-danger">Publish</button></form></span>': data;
}},
{ "data": "PublishStatus" },
{ "data": "orgname" },
{ "data": "woref" },
{ "data": "weeknum" },
{ "data": "startdate" },
{ "data": "client_po" },
{ "data": "work_desc" }
],
“ajax”:“dt-data\u list\u wo.asp?mf=d”,
“栏目”:[
{“数据”:“GUID”,呈现:函数(数据、类型、行、元){
返回类型=='显示'?
“DetailsView RSPublish”:数据;
}},
{“数据”:“PublishStatus”},
{“数据”:“组织名称”},
{“数据”:“woref”},
{“数据”:“周数”},
{“数据”:“起始日期”},
{“数据”:“客户”},
{“数据”:“工作描述”}
],
因此,多亏了andrewjames,解决方案对我的原始代码进行了几处更改-我已经注释掉了阻止它工作的部分,而带有row.PublishStatus的if子句确实起到了作用。我周末过得很愉快
"ajax": "dt-data_list_wo.asp?mf=d",
"columns": [
{"data": "GUID" , render : function ( data, type, row, meta ) {
//return type === 'display' ?
if (row.PublishStatus == "All shifts published" || row.PublishStatus == "No shifts created yet") {
return '<span style="display: inline-block;"><form method="POST" action="requestwo.asp"><input type="hidden" name="itemGUID" value="'+ data +'"/><input type="hidden" name="action" value="wodetails" /><button type="submit" class="btn btn-fill btn-info" style="margin-right: 5px">Details</button></form></span><span style="display: inline-block;"><form method="POST" action="prepub.asp"><input type="hidden" name = "itemguid" value = "' + data + '"><input type="hidden" name="action" value="view" /><input type="hidden" name="backlink" value="listwo.asp"/><button type="submit" class="btn btn-fill btn-warning" style="margin-right: 5px">View RS</button></form></span>'//: data;
} else {
return '<span style="display: inline-block;"><form method="POST" action="requestwo.asp"><input type="hidden" name="itemGUID" value="'+ data +'"/><input type="hidden" name="action" value="wodetails" /><button type="submit" class="btn btn-fill btn-info" style="margin-right: 5px">Details</button></form></span><span style="display: inline-block;"><form method="POST" action="prepub.asp"><input type="hidden" name = "itemguid" value = "' + data + '"><input type="hidden" name="action" value="view" /><input type="hidden" name="backlink" value="listwo.asp"/><button type="submit" class="btn btn-fill btn-warning" style="margin-right: 5px">View RS</button></form></span><span style="display: inline-block;"><form method="POST" action="prepub.asp"><input type="hidden" name = "itemguid" value = "' + data + '"><input type="hidden" name="action" value="publish_shifts" /><button type="submit" class="btn btn-fill btn-danger">Publish</button></form></span>'//: data;
}
}},
{ "data": "PublishStatus" },
{ "data": "orgname" },
{ "data": "woref" },
{ "data": "weeknum" },
{ "data": "startdate" },
{ "data": "client_po" },
{ "data": "work_desc" }
],
“ajax”:“dt-data\u list\u wo.asp?mf=d”,
“栏目”:[
{“数据”:“GUID”,呈现:函数(数据、类型、行、元){
//返回类型=='显示'?
if(row.PublishStatus==“所有已发布的班次”| | row.PublishStatus==“尚未创建班次”){
返回'DetailsView RS'/:数据;
}否则{
返回'DetailsView RSPublish'/:数据;
}
}},
{“数据”:“PublishStatus”},
{“数据”:“组织名称”},
{“数据”:“woref”},
{“数据”:“周数”},
{“数据”:“起始日期”},
{“数据”:“客户”},
{“数据”:“工作描述”}
],
查看渲染
函数中行
变量的内容。它包含当前行中的所有数据项(在您的示例中,可能是一个对象数组)。因此,在render
函数中,可以扩展条件逻辑以引用行.PublishStatus
。使用console.log(行)
再次检查行数据的结构。谢谢,这正是我需要的提示。修订代码张贴在下面