checkbox - 页面重新加载 Ext JS 时保存复选框值
问题描述
我有以下代码部分以这种方式在网格中显示一排复选框
网格列:
columns: [{
text: 'Name',
dataIndex: 'name'
},{
text: 'Permissions',
dataIndex: 'permissions',
width: 200,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
var checkboxes = '';
for (var variable in value) {
var temp = value[variable] === 1 ? 'checked' : '';
checkboxes += '<input type="checkbox" ' + 'name="' + variable + '" value="' +
value[variable] + '"' + temp + '>' + variable;
}
return checkboxes;
}
}]
我想保存每个复选框的值,所以当我更改复选框的选中值时,即使在页面重新加载后它也会保存。我正在尝试使用侦听器,或者可能存在最简单的方法。或者可能是一些有状态的或有状态的事件。
解决方案
如果要附加侦听器,这可能很有用:
{
text: 'Permissions',
dataIndex: 'permissions',
width: 350,
renderer: function(value, cell, record) {
var prefix = 'MyCheckBox_' + record.get('name') + '_';
var s = '';
for (var variable in value) {
s = s + '<input type="checkbox" ';
s = s + 'id="' + prefix + variable + '" ';
if (value[variable] == 1) {
s = s + 'checked ';
};
s = s +
'onclick="'+
'var r = Ext.getCmp(\'MyGridPanel\').getSelectionModel().getSelection()[0]; ' +
'var p = r.get(\'permissions\'); ' +
'p[\'' + variable + '\'] = (document.getElementById(\'' + prefix + variable + '\').checked ? 1 : 0); ' +
'r.set(\'permissions\', p); ' +
'r.commit(); ' +
'" ';
s = s + '>' + variable;
}
console.log(value);
return s;
}
}
笔记:
这个例子是用 ExtJS 4.2 测试的。
有了这段代码,checkbox的check状态只写在store中,仅此而已。您可以编写不同的处理函数。
推荐阅读
- javascript - React Native,如何使用 require 函数在图像链接中添加变量
- elasticsearch - 使用术语聚合的 Kibana 变换索引
- php - htaccess 在 $_GET 中带有数组参数
- javascript - Vue 中的条件类使用 v-for 循环中的对象
- node.js - 如何在通过multer上传文件之前自动创建文件夹,以便这些文件存储在nodejs中创建的文件夹中?
- php - 雄辩的碰撞列名称
- regex - 如何在视觉工作室代码片段上应用更多的转换?
- javascript - 如何在graphql查询中使用带有变量的%符号
- pandas - Pandas 按一个热编码列分组
- python - 如何在 Pyventory 中重用自动计算的属性?