2010-11-16 63 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規定讀者