首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Extjs的store数据显示有关问题,大家指点下!

2012-03-24 
Extjs的store数据显示问题,大家指点下! - Web 开发 / Ajax在一个父页面处打开一个子页面,其中一项信息如下

Extjs的store数据显示问题,大家指点下! - Web 开发 / Ajax
在一个父页面处打开一个子页面,其中一项信息如下面的代码所示。
问题:第一次打开是能正常显示类别的名称typeName,但当关闭子页面,再重新打开时,类别显示的是id信息typeId,而不是显示typeName,想问一下大家这是什么问题啊???如何处理让每次打开都是显示typeName呢???
我写的代码如下:

Java code
{        columnWidth : 0.5,        border : false,        style : "padding-left:0px;margin-left:0px;",        layout : "form",        items : {                fieldLabel : "类别",                anchor : "100%",                emptyText : "选择类别",                hiddenName : "typeId",                xtype : "combo",                allowBlank : false,                editable : false,                lazyInit : false,                triggerAction : "all",                store : new Ext.data.SimpleStore({                        autoLoad : true,                        url : __path + "/getType.do",                        fields : ["typeId", "typeName"]                }),                displayField : "typeName",                valueField : "typeId",                listeners : {                        select : function(d, b, c) {                                Ext.getCmp("typeName").setValue(b.data.typeName);                        }                }        }}


[解决办法]
这个是store
var departStore=new Ext.data.JsonStore({
fields:['departmentId','departmentName'],
url:"../../../script/paramsHandler.ashx",
method:'post',
baseParams:{actionType:'selectDepartInfo'},
root:"data",
idPerperty:"departmentId",
listeners:{
//监听load事件并匹配选中项
load:function()
{
Ext.getCmp('depart').setValue(memberFormStore.getAt(0).get("departmentID"));
}
}

});
departStore.load();



控件:

{ xtype:'combo',fieldLabel:"所属部门",name:'depart',id:'depart',anchor:'97.5%',
store:departStore,
forceSelection: true,//必须选择一项
valueField: 'departmentId',
displayField: 'departmentName', //必须要有的属性
hiddenName: 'departmentID',
triggerAction: 'all', //必须要有的属性
mode: 'local', //必须要有的属性
editable: false //禁止给下拉框输入值
}
[解决办法]
添上 model : remote试试
 

[解决办法]
在父页面打开子页面,这项有下拉框选择值的内容有时候显示typeId有时候显示typeName,这是什么原因啊?

这是因为时间的问题,combobox里的Store 加载是需要时间的。我也没有解决,,等待大牛吧!!!!
------解决方案--------------------


还有一点, 你写的combobox 用 xtype : "combo", 这个本来就是延迟 渲染的, 用 new Ext.form.combobox() 试试,。

[解决办法]
store : new Ext.data.SimpleStore({
autoLoad : true,
url : __path + "/getType.do",
fields : ["typeId", "typeName"]
}),
把取值的代码不要写在这里,单独定义各Store,在子画面还没显示之前,就创建你定义好的Store,也就是说子画面没显示前,已经把下拉框的数据取出来了,这样就没有时间延迟了。

热点排行