我有一个相当复杂的网格,有两列格式化为复选框。这些列定义如下:
{ name: 'Alert_A', index: 'Alert_A', width: 22, align: 'center', sortable: false,
formatter: CheckBoxFormatter, editable: true, edittype: 'checkbox', editoptions: {value: "True:False"},
formatoptions: {disabled: false}, classes: "Alert_A" },
{ name: 'Alert_B', index: 'Alert_B', width: 22, align: 'center', sortable: false,
formatter: CheckBoxFormatter, editable: true, edittype: 'checkbox', editoptions: { value: "True:False" },
formatoptions: {disabled: false}, classes: "Alert_B" }
自定义格式化程序CheckBoxFormatter
之所以需要,是因为我需要根据一些自定义规则设置每个复选框的禁用属性,因此我借用了本机“复选框”格式化程序并添加了我的自定义规则。
我还有一个外部 html 按钮元素,当我单击它时,我需要根据所选择的复选框组合来执行一些代码。我的代码如下所示:
$('#btnAlert').button().click(function (event) {
event.preventDefault();
var dashboardID = '#<%=dashboard.ClientID %>';
doWork(dashboardID);
});
以及后来的doWork
功能
var keys = $(dashboardID).getDataIDs();
for (var i = 0; i < keys.length; i++) {
var rowData = $(dashboardID).getRowData(keys[i]);
...
var reminderA = $(rowData.Alert_A).is(":checked");
var reminderB = $(rowData.Alert_B).is(":checked");
...
... other application logic here
}
不幸的是,我正在经历这样一个事实:reminderA
and reminderB
变量并不反映复选框的确切状态,而是始终反映其初始值的状态(例如,当它们被 jqgrid 插件加载时)。换句话说,当用户单击网格中的复选框时,这些值不会更新。
这是实现我的结果的正确方法还是我必须使用不同的代码?有什么帮助吗?
多谢!