闪烁咖啡 2009-10-16 10:32
浏览 182
已采纳

一个FormPanel对象将另一个FormPanel对象作为子组件,不成功,怎样解决呢?

[b]我在一个js文件class_owner.js中,创建了一个FormPanel对象:[/b]

var owner = function() {
owner.superclass.constructor.call(this, {
xtype: 'fieldset',
title: '业主信息1',
layout: 'column',
items: [{
columnWidth: .3,
layout: 'form',
labelWidth: 55,
labelAlign: 'right',
defaults: {anchor:'98%'},
items: [{
xtype: 'textfield',
fieldLabel: '业主编号'
}, {
xtype: 'numberfield', //只能输入数字的文本框
allowNegative: false, //不能输入负数
allowDecimals: false, //不能输入小数
maxLength: 18, //最大长度18位
fieldLabel: '身份证号'
}, {
xtype: 'datefield', //时间文本框
format: 'Y-m-d',
value: new Date(), //默认显示当前日期
readOnly: true,
fieldLabel: '填写时间'
}]
}, {
columnWidth: .3,
layout: 'form',
defaultType: 'textfield',
labelWidth: 55,
labelAlign: 'right',
defaults: {anchor:'98%'},
items: [{
fieldLabel: '车牌号'
}, {
fieldLabel: '所属公司'
}, {
fieldLabel: '填写人'
}]
}, {
columnWidth: .4,
layout: 'form',
items: [{
xtype: 'textfield',
inputType: 'image' //显示为图片
}]

}]
});
};

Ext.extend(owner, Ext.form.FormPanel, {});

[b]当在另一个js文件owner_info.js中,将上面创建的对象添加到一个FormPanel对象中,作为其子组件:[/b]

var myowner = new owner();
alert(myowner.title);

var fp = new Ext.form.FormPanel({
    renderTo: 'aaa',
    title: '新建业主信息',
    width: '100%',
    height: 300,
    frame: true,
    layout: 'form',
    items: [myowner]
});

[b]刷新相应的页面后,提示未知的运行时错误,请问如何解决呢?[/b]
[b]问题补充:[/b]
[b]我刚开始接触EXTJ,水平很烂,请多包涵

如果我把owner_info.js中的FormPanel对象换成Window对象,然后这个Window对象,加载myowner对象,作为其子组件,页面就能够正常显示,代码是:[/b]

var myowner = new owner();
alert(myowner.title);

var w = new Ext.Window({
    renderTo: Ext.getBody(),
    title: '新建业主信息',
    width: '99%',
    height: '100%',
    autoHeight: true,
    plain: true,
    items: [{
        layout: 'form',
        frame: true,
        items: [myowner, {}]
    }]
});

w.show();

[b]请教这是为什么呢?[/b]

[b]问题补充:[/b]
解决了。

把这个FormPanel对象myowner放入一个Panel对象中,就可以做为其子组件,而不能放入FormPanel对象,做为子组件。

谢谢。

  • 写回答

2条回答 默认 最新

  • iteye_20589 2009-10-16 10:48
    关注

    你应该看看FormPanel里的Item是啥
    你原先的代码
    [quote]var fp = new Ext.form.FormPanel({
    renderTo: 'aaa',
    title: '新建业主信息',
    width: '100%',
    height: 300,
    frame: true,
    layout: 'form',
    items: [myowner]
    }); [/quote]
    而myowner也是一个FormPanel,也就是FormPanel里面放了一个FormPanel
    我想问题应该就在这,你还是看看API,FormPanel里的Item 能放啥。。。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!