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

Ext开发有关问题记录(二)form.load有关问题

2012-11-09 
Ext开发问题记录(二)form.load问题项目开发中遇到这样一个问题。?某功能中,主表与多个子表关联,形成一个台

Ext开发问题记录(二)form.load问题

项目开发中遇到这样一个问题。

?

某功能中,主表与多个子表关联,形成一个台账界面。其中部分子表为一对一关系,其他为一对多关系。

要求:一对一关系,显示其表单界面(FormPanel),一对多关系,显示列表页面GridPanel。

?

每个子表数据均为独立的JS文件,使用Ext.ux.ScriptLoader方法,在主表FormPanel中载入,创建对应的子表Panel,使用TabPanel载入显示。

var subTabList = new Ext.TabPanel( {border : true,closable : false,autoHeight : true,activeTab : 0,frame : false,autoScroll : true,enableTabScroll : true});subTabList.add(this.tuProdDayCwPsiLAOEWindow);

?

如果是列表页面,使用Store根据主表ID载入数据。如果是一对一表单,则使用form.load方法,根据主表ID进行数据查询载入。

?

问题出现了。当只载入一个子表表单,使用form.load方法载入数据,正常,当在重复以上代码,同时载入另一个表单,则第二个表单数据无法正常载入(数据通过ajax获取已返回)。

?

如果将第一个载入表单去掉,则第二个表单单独存在的时候,js运行正常无异常。

?

使用firebug调试,提示该错误:this.form.el is undefined。

?

百度一下,基本上都是讲到,在使用form.load方法,极容易出现该错误。因为该方法使用表单控件的id进行数据处理。容易发生id冲突,需要修改ext-all文件,改为通过name进行数据处理。

?

我现在的js中,控件都没有设置ID值。之后全部加上id设置,仍然提示该错误。不知道哪里冲突了。如果不进行form.load方法调用,表单界面能够正常显示。

?

最后实在没办法,使用了曲线救国的方式,不直接进行form.load进行数据获取装载,而是在主表单里面,使用store进行数据获取,若获取到数据,则将数据以Record类型,直接交给子表表单,使用record进行数据赋值。暂时是解决这个问题而来。

?

如果不修改ext-all文件(项目的共有文件,肯定不允许我随意更改),有什么解决的方法可以多个表单存在,而且可以分别进行form.load数据装载?

?

热点排行