[CLOSED] GridPanel with CheckboxSelectionModel: select records

  1. #1

    [CLOSED] GridPanel with CheckboxSelectionModel: select records

    Hi,
    I'm using GridPanel with CheckboxSelectionModel and PagingToolbar. I need to select some records on different pages, but it seems selectRecords function selects only records on current page. What can I use as workaround ?
    Thank you.
    <script runat="server">
        public class Company
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public double Price { get; set; }
            public double Change { get; set; }
            public double PctChange { get; set; }
            public DateTime LastChange { get; set; }
        }    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                this.BindData();
            }
        }
    
        private void BindData()
        {
             this.Store1.DataSource = this.GetData();
             this.Store1.DataBind();
        }
    
        private List<Company> GetData()
        {
            return new List<Company> 
            {
                new Company { ID = 1, Name = "3m Co", Price = 71.72, Change = 0.02, PctChange = 0.03, LastChange = DateTime.Now },
                new Company { ID = 2, Name = "Alcoa Inc", Price = 29.01, Change = 0.42, PctChange = 1.47, LastChange = DateTime.Now },
                new Company { ID = 3, Name = "Altria Group Inc", Price = 83.81, Change = 0.28, PctChange = 0.34, LastChange = DateTime.Now },
                new Company { ID = 4, Name = "American Express Company", Price = 52.55, Change = 0.01, PctChange = 0.02, LastChange = DateTime.Now },
                new Company { ID = 5, Name = "American International Group, Inc.", Price = 64.13, Change = 0.31, PctChange = 0.49, LastChange = DateTime.Now },
                new Company { ID = 6, Name = "AT&T Inc.", Price = 31.61, Change = -0.48, PctChange = -1.54, LastChange = DateTime.Now },
                new Company { ID = 7, Name = "Boeing Co.", Price = 75.43, Change = 0.53, PctChange = 0.71, LastChange = DateTime.Now },
                new Company { ID = 8, Name = "Caterpillar Inc.", Price = 67.27, Change = 0.92, PctChange = 1.39, LastChange = DateTime.Now },
                new Company { ID = 9, Name = "Citigroup, Inc.", Price = 49.37, Change = 0.02, PctChange = 0.04, LastChange = DateTime.Now },
                new Company { ID = 10, Name = "E.I. du Pont de Nemours and Company", Price = 40.48, Change = 0.51, PctChange = 1.28, LastChange = DateTime.Now },
                new Company { ID = 11, Name = "Exxon Mobil Corp", Price = 68.1, Change = -0.43, PctChange = -0.64, LastChange = DateTime.Now },
                new Company { ID = 12, Name = "General Electric Company", Price = 34.14, Change = -0.08, PctChange = -0.23, LastChange = DateTime.Now },
                new Company { ID = 13, Name = "General Motors Corporation", Price = 30.27, Change = 1.09, PctChange = 3.74, LastChange = DateTime.Now },
                new Company { ID = 14, Name = "Hewlett-Packard Co.", Price = 36.53, Change = -0.03, PctChange = -0.08, LastChange = DateTime.Now },
                new Company { ID = 15, Name = "Honeywell Intl Inc", Price = 38.77, Change = 0.05, PctChange = 0.13, LastChange = DateTime.Now },
                new Company { ID = 16, Name = "Intel Corporation", Price = 19.88, Change = 0.31, PctChange = 1.58, LastChange = DateTime.Now }
            };
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head id="Head1" runat="server">
        <title>GridPanel</title>
        
        <script type="text/javascript">
            var selectRecords = function (num, sm) {
                var ids1 = [1, 4, 7],
                    ids2 = [2, 5, 8],
                    arrayId;
    
                if (num === 1)
                    arrayId = ids1;
                else
                    arrayId = ids2;
    
                sm.clearSelections();
                var records = [];
                var store = sm.grid.getStore();
                for (var i = 0; i < arrayId.length; i++) {
                    id = store.getById(arrayId[i]);
                    if (typeof id != 'undefined')
                        records.push(id);
                }
                sm.selectRecords(records, false);
            };
           
        </script>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
            <ext:Store ID="Store1" runat="server"  RemotePaging="false" >
                <Reader>
                    <ext:JsonReader IDProperty="ID">
                        <Fields>
                                <ext:RecordField Name="ID"/>
                                <ext:RecordField Name="Name"/>
                        </Fields>
                    </ext:JsonReader>
                    </Reader>
                    <AutoLoadParams>
                            <ext:Parameter Name="start" Value="0" Mode="Raw" />
                            <ext:Parameter Name="limit" Value="3" Mode="Raw" />
                    </AutoLoadParams>
            </ext:Store>
    
            <ext:GridPanel 
                runat="server" 
                ID="GridPanel1"  StoreID="Store1"
                Title="Employees" 
                Frame="true"
                Height="300" Width="500">
              
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column Header="ID" Width="60" DataIndex="ID" >
                        
                        </ext:Column>
                        <ext:Column  Header="Full Name" Width="150" DataIndex="Name">
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <View>
                    <ext:GridView ID="GridView1" runat="server" >
                    </ext:GridView>
                </View>
                <SelectionModel>
                    <ext:CheckboxSelectionModel ID="SelectionModel1" runat="server"  />
                </SelectionModel>
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" DisplayInfo="true" PageSize="3"    />
                </BottomBar>
                 <Buttons>
                    <ext:Button ID="Button2" runat="server" Text="Select 1">
                        <Listeners>
                        <Click Handler="selectRecords(1,#{SelectionModel1} );" />
                        </Listeners>
                    </ext:Button>
                    <ext:Button ID="Button3" runat="server" Text="Select 2">
                        <Listeners>
                        <Click Handler="selectRecords(2,#{SelectionModel1});" />
                        </Listeners>
                    </ext:Button>
                </Buttons>
            </ext:GridPanel>
            
        </form>
    </body>
    </html>
    Last edited by Daniil; Oct 09, 2012 at 10:30 AM. Reason: [CLOSED]
  2. #2
    Hi,

    The selectRecords can select rows from a current page only.

    To select from inactive pages, I can suggest the following script.

    Example
    var idsToSelect = [{
            recordID: "recordId1",
        }, {
            recordID: "recordId2",
        }],
        sm = GridPanel1.getSelectionModel();
        
    sm.selectedData= idsToSelect;
    GridPanel1.doSelection();
  3. #3
    Thank you Daniil ! selection works perfect. But how to deselect previously selected items? clearSelections() clears on the current page only and finally I have items from both lists selected.
    Thank you in advance.
  4. #4
    I think this should work.

    Example
    grid.getSelectionModel().clearSelections();
    grid.onMemoryClear();
  5. #5
    Here is an Ext.NET v2 discussion on the same topic.
    http://forums.ext.net/showthread.php?21368

Similar Threads

  1. [CLOSED] GridPanel with CheckboxSelectionModel getting selected records issue
    By Leonid_Veriga in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Sep 14, 2012, 5:30 AM
  2. Replies: 3
    Last Post: Sep 13, 2012, 8:52 AM
  3. Replies: 3
    Last Post: Jun 29, 2010, 2:54 PM
  4. CheckboxSelectionModel - displaying records as preselected
    By n_s_adhikari@rediffmail.com in forum 1.x Help
    Replies: 1
    Last Post: Oct 27, 2009, 7:31 PM
  5. Replies: 0
    Last Post: Jun 07, 2009, 11:35 PM

Tags for this Thread

Posting Permissions