wbr2005 2009-07-20 10:19
浏览 309
已采纳

如何从一个gridpanel获取数据在另一个gridpanel显示?

[size=xx-small][/size]想问一下,怎样让下面的表格只显示上面表格选中的2行
[b]问题补充:[/b]
我的问题是,是否可以通过var records = grid1.getSelections();记录选中的行信息,然后把这个records数据传递给grid2里面的[align=left][/align]store里面的[align=left][/align]data,这里我不知道怎么处理或者有其他方法吗?
[b]问题补充:[/b]
[img][/img]
[b]问题补充:[/b]
[color=darkred][/color][color=darkred][/color]
var rowSelect =grid1.getSelectionModel().getSelections();//返回数组
rowSelect[0] rowSelect[1] //返回Record
我能在grid1里直接调用grid2里的store吗?

grid2.store.add( rowSelect[0] );
grid2.store.add( rowSelect[1] );

还是
grid2.getStore.add( rowSelect[0]);
grid2.getStore.add( rowSelect[1]);

能不能具体一点,直接能用的,这一块语法我有些晕乎。
[b]问题补充:[/b]
是上面的过滤到下面
[b]问题补充:[/b]
非常感谢大家的帮忙。atian25 给的例子的效果是我想要的。我是要实现组件横排。grid2只能用id返回吧。照着那个例子改了下,现在问题是配置sm1时,运行出错,不知怎么回事?效果如图
[code="java"][/code]


通过布局嵌套实现表单横排




<br> Ext.onReady(function(){<br> Ext.BLANK_IMAGE_URL = &#39;../../extjs2.0/resources/images/default/s.gif&#39;;<br> var sm1= new Ext.grid.CheckboxSelectionModel(<br> [color=blue]/*<br> listeners:{<br><br> &#39;rowselect&#39;:function(sm,rowIndex,record){<br><br> Ext.getCmp(&#39;grid2&#39;).getStore().add(record);<br><br> },<br><br> &#39;rowdeselect&#39;:function(sm,rowIndex,record){<br><br> Ext.getCmp(&#39;grid2&#39;).getStore().remove(record);<br><br> }<br><br> }<br><br> */[/color]<br> );<br> var sm2 = new Ext.grid.CheckboxSelectionModel();<br><br> var form = new Ext.form.FormPanel({<br> title:&#39;通过布局嵌套实现表单横排&#39;,<br> labelSeparator :&#39;:&#39;,//分隔符<br> labelWidth : 50,//标签宽度<br> bodyStyle:&#39;padding:5 5 5 5&#39;,//表单边距<br> frame : false,<br> height:600,<br> width:600,<br> applyTo :&#39;form&#39;,<br> items:[<br> {<br> xtype : &#39;panel&#39;,<br> layout : &#39;column&#39;,//嵌套列布局<br> border : false,//不显示边框<br> height:150,<br> defaults : {//应用到每一个子元素上的配置<br> border : false,//不显示边框<br> layout : &#39;form&#39;,//在列布局中嵌套form布局<br> columnWidth : .9//列宽<br> },<br> items : [<br> {<br> labelSeparator :&#39;:&#39;,//分隔符<br> items : {<br> xtype : &#39;grid&#39;,<br> width: 400,<br><br> height: 140,<br><br> autoScroll: true,<br><br> trackMouseOver:false,<br><br> sm:sm1,<br><br> columns: [<br><br> sm1,<br><br> {header: &#39;序号&#39;, dataIndex: &#39;id&#39;, sortable: true },<br><br> {header: &#39;名字&#39;, dataIndex: &#39;name&#39;, sortable: true},<br><br> {header: &#39;描述&#39;, dataIndex: &#39;descript&#39;, sortable: true}<br><br> ],<br><br> store:new Ext.data.SimpleStore({<br><br> fields:[&#39;id&#39;,&#39;name&#39;,&#39;descript&#39;],<br><br> data:[<br><br> [1,&#39;name001&#39;,&#39;this is name001&#39;],<br><br> [2,&#39;name002&#39;,&#39;this is name002&#39;],<br><br> [3,&#39;name003&#39;,&#39;this is name003&#39;],<br><br> [4,&#39;name004&#39;,&#39;this is name004&#39;]<br><br> ]<br><br> })<br><br> }<br> }<br> ]<br> },</p> <pre><code> { xtype : &#39;panel&#39;, layout : &#39;column&#39;,//嵌套列布局 border : false,//不显示边框 defaults : {//应用到每一个子元素上的配置 border : false,//不显示边框 layout : &#39;form&#39;,//在列布局中嵌套form布局 columnWidth : .5//列宽 }, items : [ { labelSeparator :&#39;:&#39;,//分隔符 items : { xtype : &#39;textfield&#39;, fieldLabel:&#39;性别&#39;, anchor:&#39;85%&#39; } }, { items : { xtype : &#39;button&#39;, text:&#39;确定&#39; } } ] }, { xtype : &#39;panel&#39;, layout : &#39;column&#39;,//嵌套列布局 border : false,//不显示边框 defaults : {//应用到每一个子元素上的配置 border : false,//不显示边框 layout : &#39;form&#39;//在列布局中嵌套form布局 }, items : [ { labelSeparator :&#39;:&#39;,//分隔符 columnWidth :.7, items : { xtype : &#39;grid&#39;, width: 400, height: 140, id:&#39;grid2&#39;, autoScroll: true, trackMouseOver:false, sm:sm2, columns: [ sm2, {header: &#39;序号&#39;, dataIndex: &#39;id&#39;, sortable: true }, {header: &#39;名字&#39;, dataIndex: &#39;name&#39;, sortable: true}, {header: &#39;描述&#39;, dataIndex: &#39;descript&#39;, sortable: true} ], store:new Ext.data.SimpleStore({ fields:[&#39;id&#39;,&#39;name&#39;,&#39;descript&#39;] }) } }, { columnWidth :.3, items : [{ xtype : &#39;button&#39;, text:&#39;查询&#39;, handler : function(){} }, { xtype : &#39;button&#39;, text:&#39;删除&#39; } ] } ] } ] }) }); </code></pre> <p>





 


[b]问题补充:[/b]
[quote]你是不是要在上面选几个课题组,然后把属于这个课题组的人员在下面的grid中选中?
[/quote]
呵呵,其实第二个表格开始是空表,第一个表格选中的加进去就好了。现在那个sm1里面的配置加上后运行不出来,去掉就可以,我也想直接用grid2.getStore().add(record); 不过我用的xtype,这种方式用不了,不知道怎样调用grid2,用Ext.getCmp('grid2').getStore().add(record); 有问题吗?

  • 写回答

15条回答 默认 最新

  • iteye_20589 2009-07-20 15:51
    关注

    [quote]var sm1= new Ext.grid.CheckboxSelectionModel(
    /*
    listeners:{

    'rowselect':function(sm,rowIndex,record){

    Ext.getCmp('grid2').getStore().add(record);

    },

    'rowdeselect':function(sm,rowIndex,record){

    Ext.getCmp('grid2').getStore().remove(record);

    }

    }

    */
    ); [/quote]

    改成这样...
    var sm1= new Ext.grid.CheckboxSelectionModel( {

    listeners:{

    'rowselect':function(sm,rowIndex,record){

    Ext.getCmp('grid2').getStore().add(record);

    },

    'rowdeselect':function(sm,rowIndex,record){

    Ext.getCmp('grid2').getStore().remove(record);

    }

    }

    });

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

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?