MVC Store Trouble

  1. #1

    MVC Store Trouble

    Hello,

    I've been attempting to make MVC work with Ext.NET in a way that would be conducive to creating view scaffolding. I'm currently trying to get a simple CRUD gridpanel. I've tried to interpret many of the examples to this purpose but I haven't had much luck. Finally I decided to make a regular asp.net web page and suddenly things seem to work.

    What I have noticed is that the same code using a regular website will generate a POST with the parameters that are expected. However this code using MVC will generate a GET with only the _dc parameter. This results in an exception from the gridpanel store that has the message "Cannot read property 'data' of undefined".

    Here is the markup:

    <ext:ResourceManager runat="server" />
        <asp:LinqDataSource ID="lnqCrews" runat="server"  
            ContextTypeName="Ext.Net.MVC.Demo.Models.HeadcountDataContext" 
            EnableDelete="True" EnableInsert="True" EnableUpdate="True" EntityTypeName="" 
            OrderBy="CrewID" TableName="Crews" AutoPage="true" AutoSort="true">
        </asp:LinqDataSource>
        
        <ext:GridPanel 
            ID="CrewGrid"               
            runat="server" 
            Header="false"                
            Border="false"
            TrackMouseOver="true"
            Layout="FitLayout">
            <Store>
                <ext:Store 
                    ID="dsCrews" 
                    runat="server" 
                    AutomaticResponseValues="false"
                    ShowWarningOnFailure="false"
                    DataSourceID="lnqCrews"
                    PageSize="50">
                    <Model>                
                        <ext:Model ID="Model1" runat="server" IDProperty="CrewID" Name="Crew">                        
                            <Fields>
                                <ext:ModelField Name="CrewID" />
                                <ext:ModelField Name="CrewDesc" />
                                <ext:ModelField Name="OldCrewID" />
                            </Fields>
                        </ext:Model>                    
                    </Model>
                    <Sorters>
                        <ext:DataSorter Direction="ASC" Property="CrewID" />
                    </Sorters>  
                    <Listeners>
                        <Exception Handler="Ext.Msg.alert('Operation failed', operation.getError());" />                      
                    </Listeners>
                </ext:Store>
            </Store>
            <ColumnModel ID="ColumnModel1" runat="server">
                <Columns>
                    <ext:Column ColumnID="CrewID" runat="server" DataIndex="CrewID" Header="ID" Width="75">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                    </ext:Column>
                    <ext:Column ColumnID="CrewDesc"  runat="server" DataIndex="CrewDesc" Header="Crew Description" Flex="2">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                    </ext:Column>
                    <ext:Column ColumnID="OldCrewID" runat="server" DataIndex="OldCrewID" Header="Old Crew ID" Flex="1">
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                    </ext:Column>                        
                </Columns>
            </ColumnModel>
            <Buttons>
                    <ext:Button ID="Button1" runat="server" Text="Insert" Icon="Add">
                        <Listeners>
                            <Click Handler="#{dsCrews}.insert(0, {}); #{CrewGrid}.editingPlugin.startEditByPosition({row:0, column:0});" />
                        </Listeners>
                    </ext:Button>
                                
                    <ext:Button ID="btnDelete" runat="server" Text="Delete" Icon="Delete" Disabled="true">
                        <Listeners>
                            <Click Handler="#{CrewGrid}.deleteSelected();
                                            if (!#{CrewGrid}.hasSelection()) {
                                                #{btnDelete}.disable();
                                            }" />
                        </Listeners>
                    </ext:Button>
                                
                    <ext:Button ID="Button2" runat="server" Text="Save" Icon="Disk">
                        <Listeners>
                            <Click Handler="#{dsCrews}.sync();" />
                        </Listeners>
                    </ext:Button>
                                
                    <ext:Button ID="Button3" runat="server" Text="Clear" Icon="Cancel">
                        <Listeners>
                            <Click Handler="#{CrewGrid}.getSelectionModel().deselectAll();;
                                            if (!#{CrewGrid}.hasSelection()) {
                                                #{btnDelete}.disable();
                                            }" />
                        </Listeners>
                    </ext:Button>
                                
                    <ext:Button ID="Button4" runat="server" Text="Refresh" Icon="ArrowRefresh">
                        <Listeners>
                            <Click Handler="#{dsCrews}.load();" />
                        </Listeners>
                    </ext:Button>
            </Buttons>
            <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Multi">                    
                        <Listeners>
                            <Select Handler="#{btnDelete}.enable();" />
                            <Deselect Handler="if (!#{CrewGrid}.selModel.hasSelection()) {
                                                    #{btnDelete}.disable();
                                                }" />
                        </Listeners>
                    </ext:RowSelectionModel>
            </SelectionModel>
            <Plugins>
                    <ext:CellEditing ID="CellEditing1" runat="server" />
            </Plugins>
            <View>
                <ext:GridView runat="server" StripeRows="true" TrackOver="true"  />
            </View>
            <BottomBar>
                <ext:PagingToolbar runat="server" />
            </BottomBar>
        </ext:GridPanel>
  2. #2
    I don't see any proxy
    You have to define AjaxProxy and specify Url for Read and Sync operations

    Like in the following sample
    https://examples2.ext.net/#/GridPane...ns/WebService/

Similar Threads

  1. [CLOSED] Date Trouble
    By adelaney in forum 2.x Legacy Premium Help
    Replies: 3
    Last Post: Jun 28, 2012, 12:59 PM
  2. Trouble with one-to-many gridpanels parameter
    By cPrinciple in forum 1.x Help
    Replies: 2
    Last Post: Aug 02, 2011, 4:05 PM
  3. [CLOSED] [1.0] Store and Paging trouble
    By FVNoel in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Jul 08, 2011, 1:00 PM
  4. [CLOSED] Trouble when updaing SVN (Ext Net 1.0)
    By vedagopal2004 in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Nov 23, 2010, 4:32 AM
  5. Trouble with internet explorer
    By W.villevoye in forum 1.x Help
    Replies: 0
    Last Post: Jun 17, 2010, 9:53 AM

Posting Permissions