My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
issus  
Updated Nov 3, 2011 by jiangjia...@gmail.com

1. 调用 grid.selModel.selectFirstRow时机

grid.redner/ store.load 后,但js的异步特性 ,需要你如下处理

以货币窗口为例子

ui描述中为store增加 "listeners":{"load":"currencyLoad"},为grid增加 "listeners":{"render":"gridRender"}

在js中增加 如下代码 (c3 默认导入eventproxy.js)

var selectFirstRow=function(store,grid){
	
 	Ext.getCmp('grid').selModel.selectFirstRow();	
}
var proxy=new EventProxy();
proxy.assign("store","grid",selectFirstRow);
function currencyLoad(){
	proxy.trigger('store',true);
}
function gridRender(){
	proxy.trigger('grid',true);
}

2. grid password 列

ColumnModel 定义

renderer : function(value, p, r) {return ''}

c3 ui解决方法

{"header":"口令","dataIndex":"password","renderer":"renderPassword"}

只要在该ui关联 js中定义

function renderPassword(value){

return "";
}

即可,ui处理模块自动处理这个转换

3. tree问题

root类型 ,如果在json中声明root,则默认为Ext.tree.AsyncTreeNode,nodeType为async ,如果需要Ext.tree.TreeNode,则nodeType必需为node

当调用 node.expand时,当tree是不可见时(比方说在另一个tab中),节点不会展开,而且也无再手动展开

另外一个bug是,当调用 node.ui.isChecked/node.ui.toggleCheck,如果该node没有被展开过,则调用不生效

4. store.load 变POST

通过 显式说明 proxy,指定method:'GET'生效

{proxy:{url:'/employees',method:'GET'}}

很奇怪,同文档描述 不一样,也无法 传递 method:"GET"

不过get可以通过 store.proxy.conn.method="get"; 设置,但

store.load({params:{department_id:node.id}}); 无效

问题排查

1. 直接设置Ext.data.Connection.extraParams无效

2. 在url中传递参数有效,直接调用 Ext.Ajax.Request 传递 params有效

临时解决方法

   Ext.getCmp('tree').on('click',function(node){
    
        if(node!=this.root && node.id){
            var url=Ext.urlAppend(employees.url,Ext.urlEncode({department_id:node.id}));
            employees.proxy=new Ext.data.HttpProxy({url:url});
            employees.load();
        }
        
    });
Powered by Google Project Hosting