如何使用 jQuery Datatables 插件从数据库动态绑定复选框值
How to bind checkbox value dynamically from database using jQuery Datatables plugin
我正在使用 jQuery DataTables 插件来显示数据。在这里,我有一个带有复选框的列,应该根据数据库中的值来选中或取消选中,即如果来自数据库的值是 true
复选框应该被选中,如果来自数据库的值是 false
复选框应该取消选中。
这是我到目前为止所尝试过的方法。
table = $("#dataTableMenuRole").dataTable({
"ajax": {
"url": "@Url.Action("LoadGridView", "MenuSettings")",
"method": "POST",
"dataType": "json",
"data": function (d) {
d.roleId = $("#ddlRoles").val()
}
},
columns: [
{ "data": "MenuName" },
{ "data": "CanAdd" }
],
"bProcessing": true,
"aoColumnDefs": [{
"targets": 1,
"bSortable": false,
"mRender": function (data, type, full, meta) {
return '<input type="checkbox" class="minimal" checked="'+data+'"/>'
}
}]
});
从数据库返回的JSON是
{"data":[{"MenuName":"Roles","CanAdd":true},{"MenuName":"Menu","CanAdd":true},{"MenuName":"ServiceTax","CanAdd":false}]}
CAUSE
尽管 data
中有值,但您定义了 checked
属性,复选框将始终被选中。
SOLUTION
请改用以下代码:
"mRender": function (data, type, full, meta) {
return '<input type="checkbox" class="minimal"' + (data ? ' checked' : '') + '/>';
}
DEMO
有关代码和演示,请参阅 this jsFiddle。
我正在使用 jQuery DataTables 插件来显示数据。在这里,我有一个带有复选框的列,应该根据数据库中的值来选中或取消选中,即如果来自数据库的值是 true
复选框应该被选中,如果来自数据库的值是 false
复选框应该取消选中。
这是我到目前为止所尝试过的方法。
table = $("#dataTableMenuRole").dataTable({
"ajax": {
"url": "@Url.Action("LoadGridView", "MenuSettings")",
"method": "POST",
"dataType": "json",
"data": function (d) {
d.roleId = $("#ddlRoles").val()
}
},
columns: [
{ "data": "MenuName" },
{ "data": "CanAdd" }
],
"bProcessing": true,
"aoColumnDefs": [{
"targets": 1,
"bSortable": false,
"mRender": function (data, type, full, meta) {
return '<input type="checkbox" class="minimal" checked="'+data+'"/>'
}
}]
});
从数据库返回的JSON是
{"data":[{"MenuName":"Roles","CanAdd":true},{"MenuName":"Menu","CanAdd":true},{"MenuName":"ServiceTax","CanAdd":false}]}
CAUSE
尽管 data
中有值,但您定义了 checked
属性,复选框将始终被选中。
SOLUTION
请改用以下代码:
"mRender": function (data, type, full, meta) {
return '<input type="checkbox" class="minimal"' + (data ? ' checked' : '') + '/>';
}
DEMO
有关代码和演示,请参阅 this jsFiddle。