论坛首页 Web前端技术论坛

ExtJS 4.0 改善Ext.grid.plugin.RowEditing (更新v1.4版本2011-09-11)

浏览 13596 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-13  
第一个问题是常见问题,搜索下ext grid combo editor即知,因为combo编辑完成后会把它的value赋值给record,grid自然会显示ID, 解决方法是自定义grid的renderer,查找combo对应的name

第2个问题,你可以知道你现在是哪一行 (很多方法,editor,e之类的里面应该会有这个参数,或者看你当前选中哪一行,因为编辑之前肯定会选中)
知道哪一行后,就可以通过store找到对应的record.
0 请登录后投票
   发表时间:2011-07-13  
谢谢LS
第一个问题我等下研究一下,但我感觉renderer可能不太对,因为等store远程同步完成后它显示就正常了,这期间的renderer也没有变过……哎,不对,我本来的问题是进入row-editing模式后,combo初始显示的值是空的,如上面某楼图示……

第二个问题我用这样的代码实现了:
        console.log(e.grid.columns[0].getEditor().getValue());
但这个是猜出来的,在API里我应该怎么去找这个grid.columns呢?这个columns算是grid的属性?另外我发现这个办法只能取序号,万一列的顺序被调整过了就不行了,还得用e.grid.columns[i].dataIndex来判断。不过好歹算是解决了……
0 请登录后投票
   发表时间:2011-07-13  
第1个问题,如果你是REST的,update后回传了一条更新后的record,自然会显示正常,但是有些情况服务端是只返回true/false的. renderer是直接取combo的display,这个问题的解决方法从ext3到ext4都有,可以看官方论坛.

第2个问题,你都知道是哪2个field了,直接store.getAt(rowNum).get('fieldName')就ok了.
grid.columns看源码就知道了,不过算是一个内部变量,不可靠,说不定下一个版本就改了(虽然可能性不大).
0 请登录后投票
   发表时间:2011-07-13  
好吧,renderer的问题我大致明白是怎么回事了,谢谢指点……但,这个问题还是没解决



还有取值的问题,store.getAt(rowNum).get('fieldName')我试过,是不行的,这样取到的是store里的值,我要的是刚填好还没写入store那个值啊。
貌似只有column才有getEditor()的方法得到那个textfield或者combo,然后才能getValue()取到当前填写的值,有点痛苦
0 请登录后投票
   发表时间:2011-07-13  
1.编辑时取值为空的,检查下是record的value和combo的value不对应问题,还是combo的渲染时机和赋值时机差异问题.

2.只能通过editor去取了,你可以看下completEdit里面它是怎么把editor的value赋值给store的,参考下
0 请登录后投票
   发表时间:2011-09-12  
v1.4 2011-09-12 变更内容:
1.重构,修复不少bug以及合并/新增一些配置项(具体看附件中的文档)
2.支持jsduck生成文档 (https://github.com/senchalabs/jsduck)
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics