Row Editing Old and New Values

  1. #1

    Row Editing Old and New Values

    Hello!

    Based on this thread, i'm trying to get old and new values from edited row/cell.

    But always rowIndex is empty.

    How can i get this values? Here is my grid. Thanks!

    <ext:GridPanel runat="server"
                                                Frame="true"
                                                Layout="FitLayout"
                                                MarginSpec="5 0 5 0"
                                                ID="Janelas01">
                                                <Store>
                                                    <ext:Store runat="server">
                                                        <Model>
                                                            <ext:Model runat="server" IDProperty="Hora">
                                                                <Fields>
                                                                    <ext:ModelField Name="Hora" Type="Int" />
                                                                    <ext:ModelField Name="Trabalha" Type="Boolean" />
                                                                    <ext:ModelField Name="Meta" Type="Float" />
                                                                </Fields>
                                                            </ext:Model>
                                                        </Model>
                                                        <ServerProxy>
                                                            <ext:PageProxy>
                                                                <RequestConfig>
                                                                    <EventMask ShowMask="true" CustomTarget="App.Janelas01.getView().el" />
                                                                </RequestConfig>
                                                            </ext:PageProxy>
                                                        </ServerProxy>
                                                    </ext:Store>
                                                </Store>
                                                <ColumnModel runat="server">
                                                    <Columns>
                                                        <ext:Column
                                                        runat="server"
                                                        Text="Hora"
                                                        DataIndex="Hora"
                                                        Align="Center"
                                                        Flex="1">
                                                    </ext:Column>
                                                        <ext:CheckColumn Editable="True" runat="server" Text="Trabalha?" DataIndex="Trabalha" Width="100" Align="Center">
                                                            <DirectEvents>
                                                                <CheckChange OnEvent="OnCheckJanela" >
                                                                    <ExtraParams>
                                                                        <ext:Parameter Name="Hora" Value="record.get('Hora')" Mode="Raw" />
                                                                        <ext:Parameter Name="Trabalha" Value="record.get('Trabalha')" Mode="Raw" />
                                                                    </ExtraParams>
                                                                    <EventMask ShowMask="true" Msg="Recalculando..." MinDelay="3"></EventMask>
                                                                </CheckChange>
                                                            </DirectEvents>    
                                                        </ext:CheckColumn>
                                                        <ext:Column runat="server"
                                                            DataIndex="Meta"
                                                            Text="Meta / H"
                                                            Flex="1"
                                                            Align="Center">
                                                            <Editor>
                                                                <ext:NumberField
                                                                    runat="server"
                                                                    AllowBlank="false"
                                                                    AllowDecimals="true"
                                                                    Step="0.01">
                                                                </ext:NumberField>
                                                            </Editor>
                                                        </ext:Column>
                                                    </Columns>
                                                </ColumnModel>
                                                <SelectionModel>
                                                    <ext:RowSelectionModel runat="server" />
                                                </SelectionModel>
                                                <Plugins>
                                                    <ext:RowEditing runat="server">
                                                        <Listeners>
                                                            <BeforeEdit Handler="this.oldValues = Ext.net.clone(this.grid.getStore().getAt(rowIndex).data);" />
                                                        </Listeners>
                                                        <DirectEvents>
                                                            <Edit OnEvent="GridPanel_AfterEdit">
                                                                <ExtraParams>
                                                                    <ext:Parameter Name="old" Value="this.oldValues" Mode="Raw" Encode="true" />
                                                                    <ext:Parameter Name="new" Value="this.grid.getStore().getAt(rowIndex).data" Mode="Raw" Encode="true" />
                                                                </ExtraParams>
                                                            </Edit>
                                                        </DirectEvents>
                                                    </ext:RowEditing>
                                                </Plugins>
                                            </ext:GridPanel>
  2. #2
    Hello @Rtrojack!

    I can't just run your code as there's several missing pieces. But from the linked thread, I could review the working example to be applied to Ext.NET 2.5.3:

    <%@ Page Language="C#" %>
     
    <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 runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            <ext:GridPanel ID="GridPanel1" runat="server" Height="200">
                <Store>
                    <ext:Store runat="server">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="test1" />
                                    <ext:ModelField Name="test2" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column runat="server" Header="Test1" DataIndex="test1">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:Column runat="server" Header="Test2" DataIndex="test2">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:RowEditing runat="server">
                        <Listeners>
                            <BeforeEdit Handler="this.oldValues = Ext.net.clone(e.record.data);" />
                        </Listeners>
                        <DirectEvents>
                            <Edit OnEvent="OnAfterEdit">
                                <ExtraParams>
                                    <ext:Parameter Name="old" Value="this.oldValues" Mode="Raw" Encode="true" />
                                    <ext:Parameter Name="new" Value="e.record.data" Mode="Raw" Encode="true" />
                                </ExtraParams>
                            </Edit>
                        </DirectEvents>
                    </ext:RowEditing>
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
    I hope this helps!
    Fabrício Murta
    Developer & Support Expert
  3. #3
    Hi @fabricio.murta!

    You are the man! It worked exactly the way I wanted!

    Thank you!

Similar Threads

  1. Replies: 10
    Last Post: Sep 20, 2017, 2:31 AM
  2. [CLOSED] Preventing editing of CheckBox
    By Argenta in forum 3.x Legacy Premium Help
    Replies: 6
    Last Post: Feb 28, 2016, 2:31 PM
  3. Form field values don't get new values
    By Rtrojack in forum 2.x Help
    Replies: 1
    Last Post: Nov 14, 2015, 8:35 AM
  4. Replies: 9
    Last Post: Mar 13, 2014, 3:30 PM
  5. Replies: 1
    Last Post: Nov 07, 2013, 2:40 PM

Tags for this Thread

Posting Permissions