Javascript extjsv3-从表单面板内的网格面板访问数据
我在表单中使用了一个GridPanel 提交表单时,从表单元素中获取数据没有问题,但无法读取/查看放置在网格中的数据 (基本上,我给他们一个区域,在网格中添加电子邮件地址) 我想我可以将网格面板数据设置为表单中的隐藏值,但这并不像我想的那样有效 我应该在这里采取什么方向,以便当有人提交表单时,我可以看到主要的“原因”字段(我现在可以看到)以及他们输入的每个电子邮件地址 (我通过使用POST的按钮提交表单)Javascript extjsv3-从表单面板内的网格面板访问数据,javascript,extjs,extjs3,formpanel,Javascript,Extjs,Extjs3,Formpanel,我在表单中使用了一个GridPanel 提交表单时,从表单元素中获取数据没有问题,但无法读取/查看放置在网格中的数据 (基本上,我给他们一个区域,在网格中添加电子邮件地址) 我想我可以将网格面板数据设置为表单中的隐藏值,但这并不像我想的那样有效 我应该在这里采取什么方向,以便当有人提交表单时,我可以看到主要的“原因”字段(我现在可以看到)以及他们输入的每个电子邮件地址 (我通过使用POST的按钮提交表单) var projection\u record=Ext.data.record.creat
var projection\u record=Ext.data.record.create([
{name:'Email'}
]);
var projections\u store=新的Ext.data.store({
读卡器:新Ext.data.ArrayReader({
指数:0
},投影(U记录)
});
var projections\u grid=新建Ext.grid.EditorGridPanel({
商店:你的商店,
栏目:[
{
xtype:'gridcolumn',
数据索引:“电子邮件”,
标题:“批准电子邮件”,
可排序:false,
宽度:250,
编辑器:新建Ext.form.TextField({
valueField:'displayText',
displayField:“displayText”
})
},
{
xtype:'actioncolumn',
标题:“删除”,
宽度:150,
项目:[{
图标:“images/delete.png”,
处理程序:函数(网格、行索引、colIndex){
var rec=store.getAt(行索引);
警报(“删除”+rec.get('Email')+“?”);
}
//处理程序:函数(网格、行索引、colindex){
//var record=grid.getStore().getAt(行索引);
//var id=记录。获取(“电子邮件”);
//window.location='storage\u approval\u delete/'+id;
//}
}]
}
],
待定:[{
文本:“批准人”,
图标:“images/Add.png”,
处理程序:函数(){
var projection=projections\u grid.getStore().recordType;
var p=新预测({
电子邮件:“”
});
投影网格。停止编辑();
插入(0,p);
投影与网格开始匹配(0,0);
}
}],
自动高度:正确,
自动宽度:正确,
trackMouseOver:是的,
stripeRows:对
});
var simpleForm=new Ext.FormPanel({
标签宽度:175,
id:“simpleForm”,
url:“/经理批准”,
方法:“POST”,
框架:对,
标题:“Ada新项目”,
车身样式:'padding:5px 5px 0',
宽度:850,
defaultType:'textfield',
项目:[
{
fieldLabel:“请求信息”,
名称:'说明',
xtype:'textarea',
allowBlank:是的,
主播:“100%”
},
{
xtype:“字段集”,
标题:“批准经理”,
自动高度:正确,
自动宽度:正确,
可折叠:错误,
错误:,
项目:[投影网格]
},
{
xtype:'隐藏',
名称:“hidden1”,
价值:零售店
}
]
});
Hmmm。。。。我会认真考虑为电子邮件列表添加一个逗号分隔的字段
如果您执意让他们同时提交表单和编辑网格(祝您好运,让您的用户了解他们需要做什么),那么您需要做的就是提交:查找支持网格的存储,从存储记录中获取数据值(迭代),提取您需要的值,用逗号连接,最后,要么设置一个隐藏字段,要么将其作为参数包含
祝你好运。必须有一种方法将存储分配给要传递的变量。我试过这些值:Ext.util.JSON.encode(projections\u store.getRange(),'data')//value:projections\u store.getRange().JSON//value:Ext.util.JSON.encode(projections\u store)//value:Ext.util.JSON.encode(projections\u store.data.items,'data')您指的是什么?您需要数据被“引用”,而不是存储到隐藏字段中。数据可能会更改,但即使在表单加载时成功为隐藏字段设置了一些值,隐藏字段也不会更新。
var projection_record = Ext.data.Record.create([
{ name: 'Email'}
]);
var projections_store = new Ext.data.Store({
reader: new Ext.data.ArrayReader({
idIndex: 0
}, projection_record)
});
var projections_grid = new Ext.grid.EditorGridPanel({
store: projections_store,
columns: [
{
xtype: 'gridcolumn',
dataIndex: 'Email',
header: 'Approval Email',
sortable: false,
width: 250,
editor: new Ext.form.TextField({
valueField: 'displayText',
displayField: 'displayText'
})
},
{
xtype: 'actioncolumn',
header: "Delete",
width: 150,
items: [{
icon: 'images/delete.png',
handler: function(grid, rowIndex, colIndex) {
var rec = store.getAt(rowIndex);
alert("Delete " + rec.get('Email') + " ?");
}
//handler: function(grid, rowIndex, colindex) {
//var record = grid.getStore().getAt(rowIndex);
//var id = record.get("Email");
//window.location = '<% $base %>storage_approval_delete/' + id;
//}
}]
}
],
tbar: [{
text: 'Approvers',
icon: 'images/Add.png',
handler: function(){
var projection = projections_grid.getStore().recordType;
var p = new projection({
Email: ''
});
projections_grid.stopEditing();
projections_store.insert(0,p);
projections_grid.startEditing(0,0);
}
}],
autoHeight: true,
autoWidth: true,
trackMouseOver: true,
stripeRows: true
});
var simpleForm = new Ext.FormPanel ({
labelWidth: 175,
id: 'simpleForm',
url:'./manager_approvals',
method: 'POST',
frame:true,
title: 'Ada a New Project',
bodyStyle:'padding:5px 5px 0',
width: 850,
defaultType: 'textfield',
items: [
{
fieldLabel: 'Request Information',
name: 'Description',
xtype: 'textarea',
allowBlank: true,
anchor:'100%'
},
{
xtype: 'fieldset',
title: 'Approving Managers',
autoHeight: true,
autoWidth: true,
collapsible: false,
collapsed: false,
items: [projections_grid]
},
{
xtype: 'hidden',
name: 'hidden1',
value: projections_store
}
]
});