Gridpanel, lastSelectedRow and currentSelectedRow

  1. #1

    Gridpanel, lastSelectedRow and currentSelectedRow

    I have a question about the getLastSelected method. I am unable to get the last selected row with this method.

    Please see the following code. I am keep getting the current selected row index as seen in the pop up message.

    It would be great to get the last selection and the current selection after an edit event occur. With these information, I can call the update method if a new selection has been made (I.E: users click on different row after edit)

    Thank you for your time and insight!!!



    <%@ Page Language="C#" %>
      
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
     
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                Store store = this.GridPanel1.GetStore();
                store.DataSource = new object[] 
                { 
                    new 
                    {
                        test1 = "test1",
                        test2 = "test2"  
                    },
                    new 
                    {
                        test1 = "test3",
                        test2 = "test4"  
                    }
                };
                store.DataBind();
            }
        }
     
        protected void OnAfterEdit(object sender, DirectEventArgs e)
        {
            string oldValues = e.ExtraParams["old"];
            string newValues = e.ExtraParams["new"];
            X.Msg.Alert("OnAfterEdit", oldValues + "<br/>" + newValues).Show();
        }
    </script>
     
    <!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 id="Head1" runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            <ext:GridPanel ID="GridPanel1" runat="server" Height="200">
                <Store>
                    <ext:Store ID="Store1" runat="server">
                        <Fields>
                            <ext:ModelField Name="test1" ModelName ="test1"></ext:ModelField>
                            <ext:ModelField Name="test2" ModelName ="test2"></ext:ModelField>
    
                        </Fields>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column runat="server" Text="Test1" DataIndex="test1">
                            <Editor>
                                <ext:TextField ID="TextField1" runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:Column runat="server" Text="Test2" DataIndex="test2">
                            <Editor>
                                <ext:TextField ID="TextField2" runat="server" />
                            </Editor>
                        </ext:Column>
    
                      
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:CellEditing  ClicksToEdit="1">
                        <Listeners>
                            
                                          <BeforeEdit Handler=" var model = #{GridPanel1}.getSelectionModel();
                                            var n     = model.getLastSelected();
                                            var index = #{GridPanel1}.store.indexOf(n);
                                            Ext.Msg.notify('TEST', 'LastRec: ' + index);
                                          ">
                                          
                                          </BeforeEdit>
                        </Listeners>
                        <DirectEvents
                        >
                        
                        </DirectEvents>
                    </ext:CellEditing>
                    
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  2. #2
    Hi @oooh,

    It selects the record before editing, it is why the getLastSelected method returns currently edited record.

    A RowSelectionModel's Deselect is fired before editing. You can use it.
    <ext:RowSelectionModel runat="server">
        <Listeners>
            <Deselect Handler="/* use it */" />
        </Listeners>
    </ext:RowSelectionModel>

Posting Permissions