【问题标题】:Check all checkbox in gridpanel in extjs检查extjs中gridpanel中的所有复选框
【发布时间】:2010-11-16 08:29:25
【问题描述】:

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

非常感谢!

【问题讨论】:

    标签: extjs checkbox gridpanel


    【解决方案1】:

    如果您将商店字段呈现为复选框列,则必须将该字段设置为 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();
    

    【讨论】:

    • 很好的答案,我也遵循相同的方法,但我有一个案例,每页网格中有 200 条记录,在这种情况下,“selectAll”大约需要 15 - 20 秒.用户要求我做任何操作都需要时间。为什么要花那么多时间来改变 UI?有什么帮助吗?
    • @JoeriSebrechts 您的回答对我帮助很大。非常感谢! :)
    【解决方案2】:

    Ext.grid.CheckboxSelectionModel 提供了一个 selectAll() 方法,如果这是您正在寻找的。

    http://dev.sencha.com/deploy/dev/docs/?class=Ext.grid.CheckboxSelectionModel

    你能告诉我们一些代码吗?我认为 CheckColumn 是您创建的?

    【讨论】:

      【解决方案3】:
      <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>
      

      注意:Store1 是商店的名称,IsSelected 是 JsonReader 阅读器中指定的字段名称

      【讨论】:

        猜你喜欢
        • 2017-04-27
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        • 1970-01-01
        • 1970-01-01
        • 2017-03-31
        相关资源
        最近更新 更多