[CLOSED] Gridpanel is blank after store reload

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [CLOSED] Gridpanel is blank after store reload

    I'm trying what I think should be a trivial example of having an editable gridpanel tied to a sqldatasource via a store.

    Page code:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script>
            function insertRecord(grid) {
                var store = grid.store,
                    row = store.indexOf(store.insert(0, { Record_Name: "" })[0]);
    
                Ext.defer(function () {
                    grid.editingPlugin.startEditByPosition({ row: row, column: 0 });
                }, 100);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ResourceManager runat="server" /> 
            <asp:SqlDataSource ID="RecordsIWantSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
                DeleteCommand="DELETE FROM [Records_I_Want] WHERE [Id] = @Id" 
                InsertCommand="INSERT INTO [Records_I_Want] ([Record_Name], [Year_Released], [In_Collection]) VALUES (@Record_Name, @Year_Released, @In_Collection)" 
                SelectCommand="SELECT * FROM [Records_I_Want]" 
                UpdateCommand="UPDATE [Records_I_Want] SET [Record_Name] = @Record_Name, [Year_Released] = @Year_Released, [In_Collection] = @In_Collection WHERE [Id] = @Id">
                <DeleteParameters>
                    <asp:Parameter Name="Id" Type="Int32" />
                </DeleteParameters>
                <InsertParameters>
                    <asp:Parameter Name="Record_Name" Type="String" />
                    <asp:Parameter Name="Year_Released" Type="Int32" />
                    <asp:Parameter Name="In_Collection" Type="Boolean" />
                </InsertParameters>
                <UpdateParameters>
                    <asp:Parameter Name="Record_Name" Type="String" />
                    <asp:Parameter Name="Year_Released" Type="Int32" />
                    <asp:Parameter Name="In_Collection" Type="Boolean" />
                    <asp:Parameter Name="Id" Type="Int32" />
                </UpdateParameters>
            </asp:SqlDataSource>
            <ext:Store ID="RecordsIWantStore" runat="server" DataSourceID="RecordsIWantSqlDataSource" 
                OnAfterRecordInserted="RecordsIWantStore_AfterRecordInserted">
                <Model>
                    <ext:Model runat="server" IDProperty="Id">
                        <Fields>
                            <ext:ModelField Name="Id" Mapping="Id" Type="Int" SubmitEmptyValue="Null" />
                            <ext:ModelField Name="Record_Name" Mapping="Record_Name" Type="String" />
                            <ext:ModelField Name="Year_Released" Mapping="Year_Released" Type="Int" />
                            <ext:ModelField Name="In_Collection" Mapping="In_Collection" Type="Boolean" />
                        </Fields>
                    </ext:Model>
                </Model>
            </ext:Store>
            <div>
                <br />
                <ext:Viewport ID="Viewport1" runat="server" Layout="FitLayout">
                    <Items>
                        <ext:GridPanel ID="RecordsIWantGridPanel" runat="server" Height="300" Title="Records I Want" StoreID="RecordsIWantStore">
                            <TopBar>
                                <ext:Toolbar runat="server">
                                    <Items>
                                        <ext:Button ID="tbbAdd" Icon="Add" Text="Insert" runat="server">
                                            <Listeners>
                                                <Click Handler="insertRecord(#{RecordsIWantGridPanel});" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:Button runat="server" ID="tbbDelete" Icon="Delete" Text="Delete Selected Records">
                                            <Listeners>
                                                <Click Handler="#{RecordsIWantGridPanel}.deleteSelected();" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:ToolbarSeparator></ext:ToolbarSeparator>
                                        <ext:Button runat="server" ID="tbbSave" Icon="Disk" Text="Save">
                                            <Listeners>
                                                <Click Handler="#{RecordsIWantStore}.sync();" />
                                            </Listeners>
                                        </ext:Button>
                                        <ext:ToolbarSeparator></ext:ToolbarSeparator>
                                        <ext:Button runat="server" ID="tbbRefresh" Icon="ArrowRefresh" Text="Refresh">
                                            <Listeners>
                                                <Click Handler="#{RecordsIWantStore}.reload();" />
                                            </Listeners>
                                        </ext:Button>
                                    </Items>
                                </ext:Toolbar>
                            </TopBar>
                            <ColumnModel ID="ColumnModel1" runat="server">
                                <Columns>
                                    <ext:Column runat="server" Flex="1" ID="Record_NameColumn" Header="Record Name" Sortable="true" DataIndex="Record_Name">
                                    <Editor>
                                        <ext:TextField runat="server" AllowBlank="false" MaxLength="200" />
                                    </Editor>
                                </ext:Column>
                                    <ext:Column runat="server" Flex="1" ID="Year_ReleasedColumn" Header="Year Released" Sortable="true" DataIndex="Year_Released">
                                    <Editor>
                                        <ext:NumberField runat="server" AllowBlank="true" MaxLength="4" />
                                    </Editor>
                                </ext:Column>
                                    <ext:CheckColumn runat="server" Flex="1" ID="In_Collection" Header="In Collection?" Sortable="true" DataIndex="In_Collection" Editable="true">
                                </ext:CheckColumn>
                                </Columns>
                            </ColumnModel>
                            <Plugins>
                                <ext:CellEditing runat="server" />
                            </Plugins>
                        </ext:GridPanel>
                    </Items>
                </ext:Viewport>
            </div>
        </form>
    </body>
    </html>
    Code-behind:
    protected void RecordsIWantStore_AfterRecordInserted(object sender, Ext.Net.AfterRecordInsertedEventArgs e)
            {
                e.Keys.Add("Id", 0);
            }
    The gridpanel updates after the record is inserted, and deletes and edits work fine (gridpanel does what it's supposed to do), but if I click the refresh button that fires the reload method of the store, the gridpanel goes blank. Any pointers or insights would be appreciated.
    Last edited by fabricio.murta; May 17, 2019 at 8:34 PM. Reason: no feedback from the user in 7+ days

Similar Threads

  1. Replies: 3
    Last Post: Feb 12, 2014, 3:58 PM
  2. Replies: 1
    Last Post: Nov 07, 2013, 8:27 PM
  3. [CLOSED] [1.2] GridPanel and Store reload scroll position?
    By Timothy in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Oct 17, 2011, 5:45 PM
  4. Replies: 3
    Last Post: Oct 08, 2009, 11:57 AM
  5. Databind / Reload Store and GridPanel Problem
    By locoperoguapo in forum 1.x Help
    Replies: 5
    Last Post: Feb 10, 2009, 9:23 AM

Tags for this Thread

Posting Permissions