2010-11-16 59 views
1

我想检查网格面板中的Ext.grid.CheckColumn所做的所有复选框, 我可以知道是否有任何简单的方法可以做到这一点? 我尝试添加类到复选框(Ext.grid.CheckColumn),但它似乎不起作用。检查网格面板中的所有复选框在extjs

非常感谢!

回答

7

如果要将商店字段呈现为checbox列,则必须将该字段设置为true,以查找商店中的所有记录。

store.each(function(rec){ rec.set('field', true) }) 

千万不要尝试直接更改网格单元格的值,应始终通过商店的相应记录更改它。

更新:如果你有很多的记录,使用这样的:

store.suspendEvents(); // avoid view update after each row 
store.each(function(rec){ rec.set('field', true) }) 
store.resumeEvents(); 
grid.getView().refresh(); 
+0

尼斯的答案,我也遵循相同的方法, 但我有一个情况,每个网页有200个记录, 在这个ca se“选择所有”需要将近15-20秒。 用户在做任何操作时都会问是否需要时间。为什么要在UI中改变这么多时间? 任何帮助? – vajrakumar 2013-05-29 11:24:44

+1

@vajrakumar:我已经用一些建议更新了我的答案。 – 2013-05-29 12:39:55

+0

@JoeriSebrechts你的答案帮助了我很多。非常感谢你! :) – wens 2013-06-04 08:08:52

1
<script language="javascript" type="text/javascript"> 
var SelectAll = function (value) { 
     Store1.data.each(function (record) { 
      record.set('IsSelected', value); 
     }); 
    }; 
</script> 

<ext:Button ID="btnSelectAll" runat="server" Text="Select All" > 
     <Listeners> 
      <Click Handler="SelectAll(true);" /> 
     </Listeners> 
</ext:Button> 

NB:商店1是商店的名称和IsSelected是字段名称,如JsonReader规定读者