Extjs 不使用mvc将网格绑定到表单
我正在尝试将网格数据绑定到extjs中的表单。当我点击一个网格行时,应该在表单中填充详细信息。我可以用一种简单的方式而不使用MVC吗。我已经写了下面的代码。进一步帮助我。多谢各位Extjs 不使用mvc将网格绑定到表单,extjs,Extjs,我正在尝试将网格数据绑定到extjs中的表单。当我点击一个网格行时,应该在表单中填充详细信息。我可以用一种简单的方式而不使用MVC吗。我已经写了下面的代码。进一步帮助我。多谢各位 // JavaScript Document Ext.require('Ext.data.Store'); Ext.require('Ext.grid.Panel'); Ext.define('User', { extend: 'Ext.data.Model', fields: [ 'id','name', 'emai
// JavaScript Document
Ext.require('Ext.data.Store');
Ext.require('Ext.grid.Panel');
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [ 'id','name', 'email', 'phone' ]
});
Ext.onReady(function() {
var userStore = Ext.create('Ext.data.Store', {
model: 'User',
data: [
{ id: '1', name: 'srb', email: 'srb@gmail.com', phone: '555-111-1224' },
{ id: '2', name: 'srv', email: 'srv@gmail.com', phone: '555-222-1254' }
]
});
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: userStore,
width: 400,
title: 'All Users',
columns: [
{
text: 'Id',
dataIndex: 'id' ,
flex: 1
},
{
text: 'Name',
dataIndex: 'name',
flex: 2
},
{
text: 'Email Address',
flex: 3,
dataIndex: 'email',
},
{
text: 'Phone Number',
flex: 2,
dataIndex: 'phone'
}
],
listeners : {
itemclick: function(dv, record, item, index, e) {
var nm= record.get('name');
}
},
});
Ext.create('Ext.form.FieldSet',{
renderTo: Ext.getBody(),
margin: '0 0 0 10',
title:'User details',
defaults: {
width: 240,
labelWidth: 90
},
defaultType: 'textfield',
items: [{
fieldLabel: 'Id',
name: 'id'
},{
fieldLabel: 'Name',
name: 'name'
},{
fieldLabel: 'Email Id',
name: 'email'
},{
fieldLabel: 'Phone Number',
name: 'phone'
}]
});
});
您使用的是什么版本的extjs 您似乎没有定义或实例化表单 在网格的itemclick事件处理程序中,需要获取对表单的引用,并使用传入的记录调用form.loadRecord(第2个参数): 例如:
使用
Ext.form.Panel
而不是Ext.form.FieldSet
。字段集更像是一个装饰容器。表单面板支持从表单加载/保存数据等
然后,您需要一种在单击事件中访问表单面板的方法。最简单的方法是在表单上设置一个id
,并使用来获取表单的引用。因为您已经在那里得到了记录,所以可以使用表单面板的方法
你就完了!很高兴将您的模型和表单字段命名为相同的;)
事件侦听器中的最后一个调用如下所示:
Ext.getCmp('myForm').loadRecord(record);
欢迎来到StackOverflow。你能更具体地说明代码中的错误吗?顺便说一句,你最好抓住这个事件。单击可能与实际的行选择有些不相关。
Ext.getCmp('myForm').loadRecord(record);