Checkbox problem with onHeaderClick

  1. #1

    Checkbox problem with onHeaderClick

    I have the problem with all selection by header for checkbox because ext.net call the same method all times how many checkbox are object of the selection.
    Is it possible manage all selection with only one server call?


    Ext.selection.CheckboxModel.override({
                //selectAll: function (suppressEvent) {
                //    var me = this,
                //        selections = me.store.getAllRange(), // instead of the getRange call
                //        i = 0,
                //        len = selections.length,
                //        start = me.getSelection().length;
                    
                //    for (; i < len; i++) {
                //        me.doSelect(selections[i], true, suppressEvent); 
                //    }
    
                //    me.resumeChanges();
                //    if (!suppressEvent) {
                //        me.maybeFireSelectionChange(me.getSelection().length !== start);
                //    }
                   
                //},
    
                deselectAll: Ext.Function.createSequence(Ext.selection.CheckboxModel.prototype.deselectAll, function () {
                    this.view.panel.getSelectionMemory().clearMemory();
                }),
                
                onHeaderClick: function (headerCt, header, e) {
                    alert(header.isCheckerHd);
                    if (header.isCheckerHd) {
                        e.stopEvent();
                        console.log("isCheckerHd");
                        var me = this,
                            isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
    
                        // Prevent focus changes on the view, since we're selecting/deselecting all records
                        me.preventFocus = true;
                        if (isChecked) {
                            alert(isChecked);
                            me.deselectAll();
                            me.toggleUiHeader(false); // added
                        } else {
                            me.selectAll();
                            me.toggleUiHeader(true); // added
                            alert(isChecked);
                        }
                        delete me.preventFocus;
                    }
                },
    
                updateHeaderState: function () {
                    var me = this,
                        store = me.store,
                        storeCount = store.getTotalCount(),
                        views = me.views,
                        hdSelectStatus = false,
                        selectedCount = 0,
                        selected, len, i;
    
                    if (!store.buffered && storeCount > 0) {
                        selected = me.view.panel.getSelectionMemory().selectedIds;
                        hdSelectStatus = true;
                        for (s in selected) {
                            ++selectedCount;
                        }
    
                        hdSelectStatus = storeCount === selectedCount;
                    }
    
                    if (views && views.length) {
                        me.toggleUiHeader(hdSelectStatus);
                    }
                }
            });
    
    
    <DirectEvents>
                                                <Deselect OnEvent="gridSuppFilter_Select">
                                                    <ExtraParams>
                                                        <ext:Parameter Name="gridSupp" Value="Ext.encode(#{gridSuppliers}.getRowsValues({selectedOnly : true}))"
                                                            Mode="Raw" />
                                                    </ExtraParams>
                                                </Deselect>
                                                <Select OnEvent="gridSuppFilter_Select">
                                                    <ExtraParams>
                                                        <ext:Parameter Name="gridSup" Value="Ext.encode(#{gridSupp}.getRowsValues({selectedOnly : true}))"
                                                            Mode="Raw" />
                                                    </ExtraParams>
                                                </Select>
                                            </DirectEvents>
  2. #2
    Hello @yungas! Welcome to Ext.NET forums!

    Maybe you can use the same Buffer= solution recommended here: Find the Header Check box select all/Deselect all event.

    Let us know whether this works or not for you!
    Fabrício Murta
    Developer & Support Expert

Similar Threads

  1. [CLOSED] Facing problem with checkbox selection problem in gridpanel.
    By arjunrvasisht in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: May 06, 2015, 3:55 PM
  2. [CLOSED] MultiCombo checkbox problem
    By PoloTheMonk in forum 2.x Legacy Premium Help
    Replies: 3
    Last Post: Jun 04, 2013, 7:19 AM
  3. Ext.Net Grid Checkbox Column Problem
    By sumesh in forum 1.x Help
    Replies: 7
    Last Post: Oct 29, 2011, 9:35 AM
  4. CheckBox Update Problem in Gridview.
    By Ganesh3.shirsath in forum 1.x Help
    Replies: 0
    Last Post: Jan 07, 2011, 9:03 AM
  5. [CLOSED] Checkbox problem inside a Tab
    By jsemple in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Oct 03, 2009, 4:10 PM

Posting Permissions