我需要根据同一行的前一列中存在的值禁用或启用该行的最后一列。我们使用数据表来创建表。
在使用 mRender
渲染数据进行比较时,我无法获取行单元格中存在的值。任何人都可以帮忙获取 mRender
中的行值吗?
我尝试使用 iDataRow
以及 createdRow
和 fnRowCallback
在创建表后禁用最后一列。
我不知道为什么createdRow
在aoColumns
中不起作用。
请在下面找到我的代码片段:
"aoColumns": [{
"mData": "productID",
"bSearchable": true,
"bSortable": true
}, {
"mData": "barcode",
"bSearchable": true,
"bSortable": true
}, {
"mData": "fulfillmentChannel",
"bSearchable": true,
"bSortable": true
}, {
"mData": "dateAvailable",
"bSearchable": true,
"bSortable": true
}, {
"mData": "stockStatus",
"bSearchable": true,
"bSortable": true
}, {
"mData": "stockAllocation",
"mRender": function (data, type, full, iDataRow) {
console.log(iDataRow);
<c:if test="${User.permission eq 'All'}">
return '<input type="text" class="form-control" style="width:100%" id="stockAllocation" validationDescription="<spring:message code="validation.mustBeDigit"></spring:message>" validationRules="^[0-9]+$" name="stockAllocation" value="' + data + '"></input>';
</c:if>
<c:if test="${User.permission eq 'ReadOnly'}">
return data;
</c:if >
},
"bSearchable": true,
"bSortable": true
}],
我希望将 fullfillmentchannell
和 stockAllocation
的值写入 mRender
写入条件并禁用 stockAllocaton
字段.
最佳答案
SOLUTION
您可以使用full
变量来访问行的数据,例如full['fulfillmentChannel']
或full['stockAllocation']
。
然后你可以在mRender
函数中编写:
"mRender": function (data, type, full, iDataRow) {
if(full['fulfillmentChannel'] === 'A' && full['stockAllocation'] === 'B'){
data = 'Disabled';
} else {
data = 'Not disabled';
}
return data;
}
DEMO
参见this jsFiddle使用 DataTables 1.10 演示类似示例。
关于javascript - 在 jQuery 中检索 DataTable 行的单个单元格数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021495/