EXTJS传值问题

请问哪位高手知道如何将EXTJS中将选中一行grid的值传入一个FormPanel面板中。最好能给个示例,谢谢!
[b]问题补充:[/b]
FormPanel和grid不同时展示,FormPanel需要在一个window下打开

[quote]请问哪位高手知道如何将EXTJS中将选中一行grid的值传入一个FormPanel面板中。最好能给个示例,谢谢!
[/quote]

[code="js"]
var record = grid.getSelectionModel().getSelected();//获得选中的一行
formpanel.getForm().loadRecord(record);//加载到表单[/code]

[quote]问题补充:
FormPanel和grid不同时展示,FormPanel需要在一个window下打开 [/quote]

[code="js"]
var record = grid.getSelectionModel().getSelected();
var win = new Ext.Window({
width:200,
height:200,
//layout:'fit'//充满
items:[formpanel]//定义好的formpanel
listeners:{
show:function(){
formpanel.getForm().loadRecord(record);
//this.get(0).getForm().loadRecord(record);//无法引用到formpanel的时候
}
}
});

win.show();
[/code]

把你自己的EXT包换进去即可。
[code="java"]






<br> Ext.onReady(function () {<br> var data = [<br> [&#39;rowen&#39;, &#39;hohai&#39;, &#39;basketball&#39;, &#39;2005-11-01&#39;],<br> [&#39;yyy&#39;, &#39;yizhong&#39;, &#39;football&#39;, &#39;2006-02-12&#39;],<br> [&#39;ysc&#39;, &#39;jianzhong&#39;, &#39;pingpong&#39;, &#39;2007-01-21&#39;],<br> [&#39;yww&#39;, &#39;jianxiao&#39;, &#39;pingpong&#39;, &#39;2008-01-20&#39;]];<br> var reader = new Ext.data.ArrayReader({},<br> [{<br> name: &#39;name&#39;<br> },<br> {<br> name: &#39;school&#39;<br> },<br> {<br> name: &#39;sport&#39;<br> },<br> {<br> name: &#39;year&#39;,<br> type: &#39;date&#39;,<br> dateFormat: &#39;Y-m-d&#39;<br> },<br> {<br> name: &#39;desc&#39;<br> }]);<br> var store = new Ext.data.Store({<br> data: data,<br> reader: reader,<br> sortInfo: {<br> field: &#39;name&#39;,<br> direction: &#39;desc&#39;<br> }<br> });<br> var cm = new Ext.grid.ColumnModel([{<br> header: &#39;姓名&#39;,<br> sortable: true,<br> width: 160,<br> dataIndex: &#39;name&#39;<br> },<br> {<br> header: &#39;入学年份&#39;,<br> sortable: true,<br> width: 160,<br> dataIndex: &#39;school&#39;,<br> editor: new Ext.form.TextField({<br> allowBlank: false<br> })<br> },<br> {<br> header: &#39;运动爱好&#39;,<br> sortable: true,<br> width: 160,<br> dataIndex: &#39;sport&#39;<br> },<br> {<br> header: &#39;入学年份&#39;,<br> sortable: true,<br> width: 160,<br> dataIndex: &#39;year&#39;,<br> renderer: Ext.util.Format.dateRenderer(&#39;Y-m-d&#39;)<br> }]);</p> <pre><code>grid = new Ext.grid.GridPanel({ title: &#39;groupGrid&#39;, store: store, cm: cm, width: 600, height: 200, frame: true, //draggable :true, enableDragDrop: true, viewConfig: { forceFit: true }, //animCollapse:true, collapsible: true, // inline toolbars tbar: [{ text: &#39;Add Something&#39;, tooltip: &#39;Add a new row&#39;, iconCls: &#39;add&#39;, handler: function () { alert(&quot;Add Something&quot;); } }, &#39;|&#39;, { text: &#39;Options&#39;, tooltip: &#39;Blah blah blah blaht&#39;, iconCls: &#39;option&#39; }, &#39;|&#39;, { text: &#39;Remove Something&#39;, tooltip: &#39;Remove the selected item&#39;, iconCls: &#39;remove&#39; }] }); var form = new Ext.FormPanel({ autoWidth: true, bodyStyle: &#39;padding:5px 5px 0&#39;, frame: true, height: 400, labelAlign: &#39;right&#39;, labelWidth: 80, title: &#39;form&#39;, width: &#39;120&#39;, items: [{ layout: &#39;column&#39;, border: false, items: [{ columnWidth: 0.50, layout: &#39;form&#39;, border: false, items: [{ tabIndex: 1, anchor: &#39;100%&#39;, fieldLabel: &#39;姓名&#39;, name: &#39;name&#39;, xtype: &#39;textfield&#39; }] }, { columnWidth: 0.50, layout: &#39;form&#39;, border: false, items: [{ tabIndex: 12, anchor: &#39;100%&#39;, fieldLabel: &#39;学校&#39;, name: &#39;school&#39;, xtype: &#39;textfield&#39; }] }, { columnWidth: 0.50, layout: &#39;form&#39;, border: false, items: [{ tabIndex: 13, anchor: &#39;100%&#39;, fieldLabel: &#39;运动爱好&#39;, name: &#39;sport&#39;, xtype: &#39;textfield&#39; }] }, { columnWidth: 0.50, layout: &#39;form&#39;, border: false, items: [{ tabIndex: 13, anchor: &#39;100%&#39;, fieldLabel: &#39;入学年份&#39;, name: &#39;year&#39;, format: &#39;Y-m-d&#39;, xtype: &#39;datefield&#39; }] }] }] }); var win = new Ext.Window({ title: &#39;je test&#39;, height: 500, renderTo: document.body, width: 600 , items: [grid, form] }); win.show(); grid.on(&#39;click&#39;, function () { var record = grid.getSelectionModel().getSelected() form.getForm().findField(&#39;name&#39;).setValue(record.get(&#39;name&#39;)); form.getForm().findField(&#39;school&#39;).setValue(record.get(&#39;school&#39;)); form.getForm().findField(&#39;sport&#39;).setValue(record.get(&#39;sport&#39;)); form.getForm().findField(&#39;year&#39;).setValue(record.get(&#39;year&#39;)); }); </code></pre> <p>});<br>




[/code]

http://www.extjs.com/deploy/dev/examples/dd/dnd_grid_to_formpanel.html

官网的拖拽示例.
和你的问题很像了. 改改就能用应该.

var sm = new Ext.grid.CheckboxSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(sm, row, rec) {
[color=red] Ext.getCmp('你要赋值form id').getForm().loadRecord(rec); [/color]
}
}
});
只要form里面的控件的id对应grid里列映射的名称就可以把值赋到form的控件中。

其实一样的嘛,只要你可以用Ext.getCmp获取到form控件就可以了。
如果是打开新页面的窗口就要一个个值去传和set。