GridPanel AfterEdit Direct Event and Original Value

  1. #1

    GridPanel AfterEdit Direct Event and Original Value

    How do I get the original value for a row that was edited in a DirectEvent? I would like the original values to be passed as ExtraParams to the DirectEvent object if possible.

    <ext:GridPanel ID="gridPanelSettings" LabelAlign="Top" runat="server" StripeRows="true">
                            <Store>
                                <ext:Store ID="storeAccountSettings" runat="server">
                                    <Reader>
                                        <ext:JsonReader>
                                            <Fields>
                                                <ext:RecordField Name="AccountID" />
                                                <ext:RecordField Name="EquityName" />
                                                <ext:RecordField Name="LotSize" />
                                                <ext:RecordField Name="TradesEnabled" Type="Boolean" />
                                            </Fields>
                                        </ext:JsonReader>
                                    </Reader>
                                </ext:Store>
                            </Store>
                            <Plugins>
                                <ext:RowEditor ID="RowEditor1" runat="server" SaveText="Update">
                                    <DirectEvents>
                                        <AfterEdit OnEvent="gridPanelSettings_AfterRowEdit">
                                            <ExtraParams>
                                                <ext:Parameter Name="AccountID" Value="Ext.encode(#{GridPanelSettings}.getSelectionModel().getSelected().get('AccountID'))" Mode="Raw" />
                                                <ext:Parameter Name="LotSize" Value="Ext.encode(#{GridPanelSettings}.getSelectionModel().getSelected().get('LotSize'))" Mode="Raw" />
                                                <ext:Parameter Name="TradesEnabled" Value="Ext.encode(#{GridPanelSettings}.getSelectionModel().getSelected().get('TradesEnabled'))" Mode="Raw" />
                                            </ExtraParams>
                                        </AfterEdit>
                                    </DirectEvents>
                                </ext:RowEditor>
                            </Plugins>
                            <View>
                                <ext:GridView ID="GridView1" runat="server" ForceFit="true" MarkDirty="false" />
                            </View>
                           <ColumnModel ID="ColumnModel2" runat="server">
                                <Columns>
                                    <ext:RowNumbererColumn />
                                    <ext:Column ColumnID="colName" Header="Symbol" Width="150" DataIndex="EquityName" Editable="false" />
                                    <ext:Column ColumnID="colLotSize" Header="Lot Size (K)" Width="150" DataIndex="LotSize"><Editor><ext:TextField ID="txtLotSize" runat="server" /></Editor></ext:Column>
                                    <ext:BooleanColumn ColumnID="colTradesEnabled" Header="Trades Enabled?" FalseText="No" TrueText="Yes" DataIndex="TradesEnabled"><Editor><ext:Checkbox ID="Checkbox3" runat="server" /></Editor></ext:BooleanColumn>
                                </Columns>
                            </ColumnModel>
                            <SelectionModel>
                                <ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true" />
                            </SelectionModel>
                            <LoadMask ShowMask="true" />
                        </ext:GridPanel>
  2. #2
    Hi,

    I can suggest the following solution.

    Example
    <%@ 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 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">
                        <Reader>
                            <ext:JsonReader>
                                <Fields>
                                    <ext:RecordField Name="test1" />
                                    <ext:RecordField Name="test2" />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="Test1" DataIndex="test1">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:Column Header="Test2" DataIndex="test2">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:RowEditor runat="server">
                        <Listeners>
                            <BeforeEdit Handler="this.oldValues = Ext.net.clone(this.grid.getStore().getAt(rowIndex).data);" />
                        </Listeners>
                        <DirectEvents>
                            <AfterEdit OnEvent="OnAfterEdit">
                                <ExtraParams>
                                    <ext:Parameter Name="old" Value="this.oldValues" Mode="Raw" Encode="true" />
                                    <ext:Parameter Name="new" Value="o" Mode="Raw" Encode="true" />
                                </ExtraParams>
                            </AfterEdit>
                        </DirectEvents>
                    </ext:RowEditor>
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  3. #3

    ExtraParams grid panel

    Hi, how can i recover the row modify complete?

    Quote Originally Posted by Daniil View Post
    Hi,

    I can suggest the following solution.

    Example
    <%@ 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 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">
                        <Reader>
                            <ext:JsonReader>
                                <Fields>
                                    <ext:RecordField Name="test1" />
                                    <ext:RecordField Name="test2" />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="Test1" DataIndex="test1">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                        <ext:Column Header="Test2" DataIndex="test2">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:RowEditor runat="server">
                        <Listeners>
                            <BeforeEdit Handler="this.oldValues = Ext.net.clone(this.grid.getStore().getAt(rowIndex).data);" />
                        </Listeners>
                        <DirectEvents>
                            <AfterEdit OnEvent="OnAfterEdit">
                                <ExtraParams>
                                    <ext:Parameter Name="old" Value="this.oldValues" Mode="Raw" Encode="true" />
                                    <ext:Parameter Name="new" Value="o" Mode="Raw" Encode="true" />
                                </ExtraParams>
                            </AfterEdit>
                        </DirectEvents>
                    </ext:RowEditor>
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  4. #4
    Hi @oisuky,

    Please start a new forum thread. If you feel the threads are related, please feel free to cross link between the two.
  5. #5

    GridPanel width After Edit

    Hi

    I want to know how i can recover a complete row in a GridPanel using ExtraParams. I have seen a example through link but through link but in this just is recover the cell that has modificacion

Similar Threads

  1. [CLOSED] Output Cache issue with Direct Method / Direct Event
    By amitpareek in forum 1.x Legacy Premium Help
    Replies: 18
    Last Post: Mar 01, 2013, 5:03 AM
  2. Gridpanel - Afteredit Event
    By Tbaseflug in forum 1.x Help
    Replies: 1
    Last Post: Feb 09, 2012, 9:22 AM
  3. Replies: 13
    Last Post: Dec 30, 2010, 7:53 PM
  4. Replies: 1
    Last Post: Dec 22, 2010, 3:47 PM
  5. Replies: 3
    Last Post: Apr 20, 2010, 12:21 PM

Tags for this Thread

Posting Permissions