Ext3 备忘

●[b]给Ext.ux.tree.TreeGrid添加checkbox[/b]
TreePanel要添加checkbox很容易,只需节点有checked属性。TreeGrid默认不支持,为此上网找资料半天才发现简单一点的方法,如下:
修改Ext.ux.tree.TreeGridNodeUI的方法renderElements,在buf数组中,在含有x-tree-node-icon的行下面添加一行:
Ext.isBoolean(a.checked) ? ('<input class="x-tree-node-cb" type="checkbox"' + (a.checked ? ' checked' : '') + '/>') : '',
还要在renderElements方法的最后添加以下几行:
if (Ext.isBoolean(a.checked)){
this.checkbox = cs[3];
this.checkbox.defaultChecked = this.checkbox.checked; //fix for ie6
this.anchor = cs[4];
this.textNode=cs[4].firstChild;
}

●[b]让带checkbox的TreeGrid具有与GridPanel一样的点击选中行为:[/b]
listener:{
click: function(n){
n.getUI().toggleCheck();
return n.getUI().isChecked();
},
checkchange: function(n, checked){
checked ? n.select() : n.unselect();
}
}

●Combox默认提交text,要提交value,需设置hiddenName属性为字段名,取消name属性。

●[b]手动创建grid的行[/b]
var Record = Ext.data.Record.create([{name:'id'},{name:'title'}]);
var r = new Record({id:1,title:'text'});
grid.store.add(r);
注意,这样创建的Record,取数据的方法为record.data,不是record.json

●[b]实现combo模糊查询[/b]
combo.on('beforequery', funciton(qe){
var cb = qe.combo;
cb.selectedIndex = -1;
if (qe.foreAll) return;
cb.store.filterBy(function(r, id){
var text = r.get(cb.displayField);
return text.indexOf(qe.query) != -1;
});
cb.onLoad();
return false;
});

●[b]实现combo自定义显示值[/b]
var store = new Ext.data.JsonStore({
url: 'xxx',
fields:['id','name','text',
{name:'[b]display[/b]', convert:function(v,r){return r.name + '(' + r.text + ')';}}]
});
combo:
{
xtype: 'combo', triggerAction:'all', store:store,valueField:'id',
[b]displayField:'display'[/b], selectOnFocus:true
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值