我需要根据同一行的上一列中存在的值禁用或启用该行的最后一列。我们使用Datatables来创建表。
在使用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
字段。
答案 0 :(得分:1)
<强>解强>
您可以使用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;
}
<强>样本强>
有关使用DataTables 1.10的类似示例的演示,请参阅this jsFiddle。