[CLOSED] GridPanel with selected rows Strange Behaviour

  1. #1

    [CLOSED] GridPanel with selected rows Strange Behaviour

    Hi

    I have a GridPanel which I have set to RowSelectionModel Mode=Simple. This allows me to make some selections over multiple grid rows. However I have a couple of problems.


    1. When I use selModel.clearSelections() the selections are cleared but the grid still shows them selected. I have to call the grid.getView().refresh() for this to make the grid appear with no selections. Is this normal it seems like that is a bug?
    2. If I reload the data by clicking a button via a DirectEvent the selections that were cleared are reloaded.


    I have included an example to demonstrate....please also note that number (2) only happens if you set an IDProperty on the Model...removing this ID Property does not have the undesired behaviour.

    To replicate :

    1. Load Page
    2. Select multiple rows in grid
    3. Click the Deselect button
    4. Press the reload button



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="/UI/css/main.css" rel="stylesheet" type="text/css" />
        <script>
            var template = '<span style="color:{0};">{1}</span>';
    
    
            var change = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value);
            };
    
    
            var pctChange = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value + "%");
            };
    
    
            var clearSelections = function() {
                var grid = <%= GridPanel1.ClientID %>,
                    selModel = grid.getSelectionModel();
    
    
                selModel.clearSelections();
                grid.getView().refresh();
            };
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
            <ext:GridPanel 
                ID="GridPanel1"
                runat="server" 
                Title="Array Grid" 
                Width="600" 
                Cls="flash-grid"
                Height="350">
                <Store>
                    <ext:Store ID="Store1" runat="server">
                        <Model>
                            <ext:Model runat="server" IDProperty="company">
                                <Fields>
                                    <ext:ModelField Name="company" />
                                    <ext:ModelField Name="price" Type="Float" />
                                    <ext:ModelField Name="change" Type="Float" />
                                    <ext:ModelField Name="pctChange" Type="Float" />
                                    <ext:ModelField Name="lastChange" Type="Date" DateFormat="M/d hh:mmtt" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:Column runat="server" Text="Company" DataIndex="company" Flex="1" />
                        <ext:Column runat="server" Text="Price" DataIndex="price">                  
                            <Renderer Format="UsMoney" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" DataIndex="change">
                            <Renderer Fn="change" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" DataIndex="pctChange">
                            <Renderer Fn="pctChange" />
                        </ext:Column>
                        <ext:DateColumn runat="server" Text="Last Updated" DataIndex="lastChange" />
                    </Columns>            
                </ColumnModel>       
                <SelectionModel>
                    <ext:RowSelectionModel runat="server" Mode="Simple" />
                </SelectionModel>
                <BottomBar>
                    <ext:Toolbar runat="server">
                        <Items>
                            <ext:Button runat="server" Text="Deselect" Handler="clearSelections();" />
                            <ext:Button runat="server" Text="Reload">
                                <DirectEvents>
                                    <Click OnEvent="Reload"></Click>
                                </DirectEvents>
                            </ext:Button>
                        </Items>
                    </ext:Toolbar>
                </BottomBar>
            </ext:GridPanel>
        </div>
        </form>
    </body>
    </html>
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!X.IsAjaxRequest)
                {
                    this.Store1.DataSource = this.Data;
                    this.Store1.DataBind();
                }
            }
    
    
            protected void Reload(object sender, DirectEventArgs e)
            {
                this.Store1.DataSource = this.Data;
                this.Store1.DataBind();
            }
    
    
            private object[] Data
            {
                get
                {
                    return new object[]
                    {
                        new object[] {"3m Co", 71.72, 0.02, 0.03, "9/1 12:00am"},
                        new object[] {"Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am"},
                        new object[] {"Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am"},
                        new object[] {"American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am"},
                        new object[] {"American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am"},
                        new object[] {"AT&T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am"},
                        new object[] {"Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am"},
                        new object[] {"Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am"},
                        new object[] {"Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am"},
                        new object[] {"E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am"},
                        new object[] {"Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am"},
                        new object[] {"General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am"},
                        new object[] {"General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am"},
                        new object[] {"Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am"},
                        new object[] {"Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am"},
                        new object[] {"Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am"},
                        new object[] {"International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am"},
                        new object[] {"Johnson & Johnson", 64.72, 0.06, 0.09, "9/1 12:00am"},
                        new object[] {"JP Morgan & Chase & Co", 45.73, 0.07, 0.15, "9/1 12:00am"},
                        new object[] {"McDonald\"s Corporation", 36.76, 0.86, 2.40, "9/1 12:00am"},
                        new object[] {"Merck & Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am"},
                        new object[] {"Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am"},
                        new object[] {"Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am"},
                        new object[] {"The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am"},
                        new object[] {"The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am"},
                        new object[] {"The Procter & Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am"},
                        new object[] {"United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am"},
                        new object[] {"Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am"},
                        new object[] {"Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am"}
                    };
                }
            }
    Last edited by Daniil; Jul 17, 2015 at 7:08 AM. Reason: [CLOSED]
  2. #2
    Hi Danil

    Sorry I found that deselectAll does the trick...I had just read previous posts that suggsted clearSelections.

    All fixed

    Regards
    Glen

Similar Threads

  1. Strange behaviour in markup
    By Paul D in forum 1.x Help
    Replies: 1
    Last Post: Nov 09, 2010, 12:27 PM
  2. Replies: 1
    Last Post: Oct 13, 2010, 11:09 PM
  3. Replies: 7
    Last Post: May 09, 2009, 8:06 AM
  4. [CLOSED] strange ComboBox behaviour
    By alexp in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: May 01, 2009, 10:13 AM
  5. Gridpanel with combobox, strange behaviour
    By Jurke in forum 1.x Legacy Premium Help
    Replies: 6
    Last Post: Dec 17, 2008, 5:59 AM

Posting Permissions