根据另一列中的数据隐藏Datatables.net表中的元素

根据另一列中的数据隐藏Datatables.net表中的元素,datatables,Datatables,我有一个datatable,最近我改为使用AJAX数据源方法。 这是一种享受。 我在第一列中添加了三个按钮(有效,没有问题),现在我想根据另一列中的数据有条件地显示/隐藏第三个按钮。如果data:PublishStatus=“未创建班次”,我不想显示第三个按钮 我看过: 但是我不能把我的脑袋绕到需要的东西上来,因为条件是基于一个列而不是我正在使用的列。如果我把按钮放在PublishStatus列中,我可以看到如何做 "ajax": "dt-data_list_wo.

我有一个datatable,最近我改为使用AJAX数据源方法。 这是一种享受。 我在第一列中添加了三个按钮(有效,没有问题),现在我想根据另一列中的数据有条件地显示/隐藏第三个按钮。如果data:PublishStatus=“未创建班次”,我不想显示第三个按钮

我看过:

但是我不能把我的脑袋绕到需要的东西上来,因为条件是基于一个列而不是我正在使用的列。如果我把按钮放在PublishStatus列中,我可以看到如何做

"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(行)
再次检查行数据的结构。谢谢,这正是我需要的提示。修订代码张贴在下面