CheckboxModel,预选择行
CheckboxModel, pre-selecting rows
本文关键字:选择 CheckboxModel 更新时间:2023-09-26
hey Guys.
我有这个错误已经困扰我几个小时了。我已经找到了"为什么",但我需要你的帮助找到"如何解决它"。
这是一个用于编辑"复杂"记录的表单。
我的布局(简单地说)是这样的:
- 形式
- tabpanel
- panel1(默认)
- …
- …
- panel2
- 网格
- panel1(默认)
- tabpanel
创建表单后,我接着将记录的值加载到表单中,并根据记录中嵌套存储中的记录加载到网格上的选择行。
和我的问题是,因为网格-或选择模型-没有视图(显然),它抛出一个"无法读取属性'长度'的未定义"
onSelectChange: function(record, isSelected, suppressEvent, commitFn) {
var me = this,
views = me.views,
viewsLn = views.length, // HERE <-------------
store = me.store,
rowIdx = store.indexOf(record),
eventName = isSelected ? 'select' : 'deselect',
i = 0;
...
如果我插入一个setTimeout大到足以改变标签之前,它试图选择的行,它工作正常。
所以,有人知道如何解决这个问题吗?setTimeout方法当然不是一个选项:)
好了,问题解决了…刚刚选择了网格的afterrender事件上的行。
可能对某人有帮助
在将Ext.form.field.Field
mixin添加到Ext.grid.Panel
以创建自己的GridMultiSelect
类型的表单字段时,我遇到了这个问题。具体来说,我发现在渲染网格之前调用了setValue()
函数,因此设置选择失败。
setValue()
函数可以在网格渲染之前和之后调用,所以这是我的解决方案:
if (this.rendered) {
this.getSelectionModel().select(recordsToSelect);
} else {
this.addListener('afterrender', function() {
this.getSelectionModel().select(recordsToSelect);
}, this, {
single: true
});
}
也就是说,如果它还没有呈现,为afterrender
事件创建一个一次性侦听器,然后设置选择。
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- d3基于用户选择动态更新节点
- 提交后保留下拉选择的值
- JQuery对动态创建的对象进行选择
- 无法在Ionic select中预先选择最后一个选项
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery自动完成阻止选择后聚焦
- 使用此选项选择父类内部的类
- jQuery最近父级的数据属性选择器
- 遍历类元素数组,并在jquery中选择同级元素
- CKeditor:更改对话框中的默认选择选项
- CheckboxModel,预选择行