[CLOSED] How to handle store save postback?

  1. #1

    [CLOSED] How to handle store save postback?

    Hi all,
    i'm trying to find the simplest way to save data from a store (with autosave disabled)

    i've noticed that calling store.save() triggers a postback even if no DirectEvent has been defined.
    It sends back a "submitDirectEventConfig" parameter in POST.

    Is this this default behaviour correct?

    I have two question:
    - how do i handle the saving using this postback?
    - how do i avoid that postback if i want to handle the saving in a specific way?
    - how do i link my DirectEvent or Listener + DirectMethod to store.save()?

    More over i found this examnple: http://dev.sencha.com/deploy/dev/exa...er/writer.html
    I've tried to replicate the proxy with the "api" member: how do i realize it in Ext.net?

    Thanks
    Last edited by Daniil; Oct 15, 2010 at 9:38 AM. Reason: [CLOSED]
  2. #2
    Hre the example.

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        public class DataRecord
        {
            public int Id { get; set; }
            public string Data { get; set; }
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            this.DataStore.DataSource = this.GetData();
            this.DataStore.DataBind();
        }
    
        private List<DataRecord> GetData()
        {
            return new List<DataRecord> 
            {
                new DataRecord { Id = 1, Data = "Data1"},
                new DataRecord { Id = 2, Data = "Data2" },
                new DataRecord { Id = 3, Data = "Data3" },
                new DataRecord { Id = 4, Data = "Data4" },
            };
        }
    
    
        
    </script>
    
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Sample</title>
    
        <script type="text/javascript">
    
            function add() {
                var store = GridPanel.store;
                var record = new store.recordType({
                    Id: "",
                    Data: "Data"
                });
                store.add(record);
            }
    
            function remove() {
                GridPanel.store.remove(GridPanel.getSelectionModel().getSelected());
            }
    
            function save() {
                GridPanel.store.save();
            }
    
    
    
        </script>
    
    </head>
    <body>
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
        <ext:Store runat="server" ID="DataStore">
            <Reader>
                <ext:JsonReader IDProperty="Id"> 
                    <Fields>
                        <ext:RecordField Name="Id" Type="Int" />
                        <ext:RecordField Name="Data" Type="String"/>
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
    
        <ext:Viewport runat="server" ID="Viewport" Layout="Fit">
            <Items>
                <ext:GridPanel
                    runat="server" 
                    ID="GridPanel"
                    StoreID="DataStore"  
                    Title="Table" 
                    Icon="Table"
                    Frame="true">
                    <ColumnModel ID="ColumnModel" runat="server">
                        <Columns>
                            <ext:Column Header="ID" DataIndex="Id" />
                            <ext:Column Header="Data" DataIndex="Data" >
                                <Editor>
                                    <ext:TextField ID="TextField1" runat="server" />       
                                </Editor>
                            </ext:Column>
                        </Columns>
                    </ColumnModel>
                    <SelectionModel>
                        <ext:RowSelectionModel ID="RowSelectionModel" runat="server" />
                    </SelectionModel>
                    <Buttons>
                        <ext:Button ID="Button1" runat="server" Text="Salva" Icon="DatabaseSave">
                            <Listeners>
                                <Click Handler="save();" />
                            </Listeners>
                        </ext:Button>
                    </Buttons>
                    <TopBar>
                        <ext:Toolbar ID="Toolbar" runat="server">
                            <Items>
                                <ext:Button ID="AddButton" runat="server" Icon="Add" Text="Add">
                                    <Listeners>
                                        <Click Handler="add()" />  
                                    </Listeners>
                                </ext:Button>
                                <ext:Button ID="DeleteButton" runat="server" Icon="Delete" Text="Delete">
                                    <Listeners>
                                        <Click Handler="remove();"/>
                                    </Listeners>
                                </ext:Button>
                            </Items>
                        </ext:Toolbar>
                     </TopBar>
                    <LoadMask ShowMask="true" />
                    <SaveMask ShowMask="true" />
                </ext:GridPanel>
            </Items>
        </ext:Viewport>
    
    </body>
    </html>
  3. #3
    HI capecod,

    - how do i handle the saving using this postback?
    Please use the OnBeforeStoreChange event.
    protected void BeforeStoreChanged(object sender, BeforeStoreChangedEventArgs e)
    {
       //your code
    }
    
    <ext:Store runat="server" OnBeforeStoreChanged="BeforeStoreChanged">
       //Other Store's members
    </ext:Store>
    - how do i avoid that postback if i want to handle the saving in a specific way?
    You could avoid invoking the save method or return false from the Store's BeforeSave client side event.

    - how do i link my DirectEvent or Listener + DirectMethod to store.save()?
    I'm not sure what do you mean. Would you like to override this method?

    Here is an example saving and submitting data from a grid.
    https://examples1.ext.net/#/GridPane...s/Save_Filter/

    I've tried to replicate the proxy with the "api" member: how do i realize it in Ext.net?
    Please investigate this example
    https://examples1.ext.net/#/GridPanel/Restful/Overview/
  4. #4
    Thanks. I really needed some hints ;)

Similar Threads

  1. Store OnLoad called on every postback
    By wexman in forum 1.x Help
    Replies: 1
    Last Post: Nov 17, 2011, 11:53 AM
  2. [CLOSED] PostBack store
    By randy85253 in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: May 01, 2010, 9:58 AM
  3. [CLOSED] problem with dynamic store on postback
    By idrissb in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Dec 27, 2009, 11:28 AM
  4. Access to Store after PostBack...
    By myron in forum 1.x Help
    Replies: 3
    Last Post: May 07, 2009, 3:19 PM
  5. [CLOSED] Question on how to correctly handle Store listener in js file
    By pkellner in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Oct 03, 2008, 10:31 PM

Tags for this Thread

Posting Permissions