问题如题
ext代码如下:
- JScript code
<script type="text/javascript">Ext.require([ 'Ext.form.*', 'Ext.data.*']);Ext.onReady(function(){ var app = new bb.SouthCenter(); }); Ext.define('bb.SouthCenter',{ extend: 'Ext.form.Panel', initComponent: function(){// Ext.define('bb.formItem',{//在 gridform中使用 extend: 'Ext.data.Model', fields : [ {name:'SiteID',mapping:'SiteID'} ,{name:'SiteName',mapping:'SiteName'} ] }); Ext.apply(this,{ renderTo: 'form-ct', frame: true, title:'XML Form', width: 340, bodyPadding: 5, waitMsgTarget: true, fieldDefaults: { labelAlign: 'right', labelWidth: 85, msgTarget: 'side' }, reader : this.creatReader(), items: [{ xtype:'textfield', fieldLabel: 'SiteID', name: 'SiteID' }, { xtype:'textfield', fieldLabel: 'SiteName', name: 'SiteName' }], buttons: [{ text: 'Load', listeners:{ scope: this,//范围 click:this.loadurl } }] }); this.callParent(arguments); }, loadurl:function(){ this.getForm().load({ url: '/database/item.txt', waitMsg: 'Loading...' }); }, creatReader:function(){ this.Reader=Ext.create('Ext.data.reader.Array', { model:'bb.formItem', record : 'items', implicitIncludes:true }); return this.Reader; } });</script>
json信息如下:
- JScript code
{items:{ SiteID:'ID1', SiteName:'marshalmackes', }}
可以加载json数据,但是无法显示到表单里。
而且如果不用define封装form.Panel 而直接用var formpanel=Ext.create();的形式数据显示没问题。
------解决方案--------------------
只想说两点:1,json中的根结点名与grid中的root一定要一致的。2,像这种初始化的,一般可先得到grid中的值,在对应window中做初始化赋值。
------解决方案--------------------
向楼主学习!自己的自己来回答,好跟大家分享。把json中的items改成data,ext中的record 也相对应改一下就ok了
估计是ext对于form panel就是只能用这个的。