autoload datastore records from http proxy

  1. #1

    autoload datastore records from http proxy

    Im wokring on an MVC application, in its simplest form, I have to entity: provinces and regions.

    provinces have an Id and a name
    regions have an Id, name and regionId


    I have a Gridpanel that displays the provinces, its setup as below (sorry about the long snippet)


    
    
     <script runat="server">
            void OnLoad(EventArgs e) {
                base.OnLoad(e);
                dsRegions.DataBind();
            }
        </script>
        
    
    
        
        <script type="text/javascript">
        
        
            var commandHandler = function(cmd, record) {
                switch (cmd) {
                    case "delete":
                        Ext.Msg.confirm('Alert', 'Delete Record?', function(btn) {
                            if (btn == "yes") {
                                dsCustomers.remove(record);
                                dsCustomers.save();
                            }
                        });
                        break;
                }
            }
    
    
            var regionChangedHandler = function(src, newValue, oldValue) {
                var ds = dsProvinces;
                dsRegions.each(function(region) {
                    if (region.data.Id == newValue) {
                        dsProvinces.each(function(province) {
                            var gp = GridPanel1;
                            province.data.Region = region.data;
                        });
                    }
                });
            }
    
    
    
    
    
    
        </script>
        
        
        
        <script type="text/javascript">
            var regionRenderer = function(value, v2, v3) {
                if (value) {
                    var ds = dsRegions;
                    dsRegions.reload();
                    var r = dsRegions.getById(value);
                    if (r) {
                        return r.data.Name;
                    }
                    //                return "";
                    //                
                } else {
                    //                return "";
                }
            }
        </script>
    
    
    
    
    
    
    
    
    
    <ext:ScriptManager ID="scriptManager1" runat="server" />
        <ext:Store ID="dsProvinces" runat="server" RemoteSort="false" UseIdConfirmation="true" AutoLoad="true" >
            <Proxy>
                <ext:HttpProxy Url="/Provinces.aspx/GetProvincesMatching/" />
            </Proxy>
            <UpdateProxy>
                <ext:HttpWriteProxy Url="/Provinces.aspx/SaveProvincesWithConfirmation/" />
            </UpdateProxy>
            <Reader>
                <ext:JsonReader ReaderID="Id" Root="data" TotalProperty="totalCount" AutoDataBind="true">
                    <Fields>
                        <ext:RecordField Name="Id" SortDir="ASC"/>
                        <ext:RecordField Name="Name" />
                        <ext:RecordField Name="PostalIso" />
                        <ext:RecordField Name="RegionId" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
            <BaseParams>
                <ext:Parameter Name="limit" Value="15" Mode="Raw" />
                <ext:Parameter Name="start" Value="0" Mode="Raw" />
                <ext:Parameter Name="dir" Value="ASC" />
                <ext:Parameter Name="sort" Value="Id" />
            </BaseParams>
            <SortInfo Field="Id" Direction="ASC"  />
        </ext:Store>
        
        
        <ext:Store ID="dsRegions" runat="server" RemoteSort="false"  AutoLoad="true"  >
            <Proxy>
                <ext:HttpProxy Url="/Regions.aspx/GetRegions/"  />
            </Proxy>
            <Reader>
                <ext:JsonReader ReaderID="Id" Root="data" TotalProperty="totalCount" AutoDataBind="true">
                    <Fields>
                        <ext:RecordField Name="Id" SortDir="ASC"/>
                        <ext:RecordField Name="Name" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
            <BaseParams>
                <ext:Parameter Name="limit" Value="-1" Mode="Raw" />
                <ext:Parameter Name="start" Value="-1" Mode="Raw" />
                <ext:Parameter Name="dir" Value="ASC" />
                <ext:Parameter Name="sort" Value="Id" />
            </BaseParams>
            <SortInfo Field="Id" Direction="ASC" AutoDataBind="true" />
        </ext:Store>
        
        <ext:ViewPort ID="ViewPort1" runat="server">
            <Body>
                <ext:FitLayout ID="FitLayout1" runat="server">
                    <ext:GridPanel 
                        ID="GridPanel1" 
                        runat="server" 
                        Header="false"
                        Border="false"
                        StoreID="dsProvinces"
                        TrackMouseOver="true"
                        ClicksToEdit="2" 
                        AutoExpandColumn="Name">
                        <ColumnModel ID="columnModel1" runat="server">
                            <Columns>
                                <ext:Column ColumnID="Name" DataIndex="Name" Header="Region">
                                    <Editor>
                                        <ext:TextField ID="ProvicneNameTextField" runat="server" AllowBlank="false" />
                                    </Editor>
                                </ext:Column>
                                <ext:Column ColumnID="PostalIso" DataIndex="PostalIso" Header="Postal ISO">
                                    <Editor>
                                        <ext:TextField ID="ProvincePostalISOTextField" runat="server" AllowBlank="false" MaxLength="2" MaxLengthText="2" />
                                    </Editor>
                                </ext:Column>
                                <ext:Column ColumnID="ProvinceRegionName" DataIndex="RegionId" Header="Region">
                                    <Renderer Fn="regionRenderer" />
                                    <Editor>
                                        <ext:ComboBox
                                            Id="ProvinceRegionComboBox"
                                            StoreID="dsRegions"
                                            AllowBlank="false"
                                            Editable="false"
                                            TypeAhead="true" 
                                            Mode="Local"
                                            ForceSelection="true"
                                            TriggerAction="All"            
                                            DisplayField="Name"
                                            ValueField="Id"
                                            EmptyText="Loading..."
                                            ValueNotFoundText="Loading..."
                                             AutoDataBind="true"
                                            runat="server">
                                                <Listeners>
                                                    <Change Fn="regionChangedHandler" />
                                                </Listeners>
                                            </ext:ComboBox>
                                    </Editor>
                                </ext:Column>
                            </Columns>
                        </ColumnModel>
                        <TopBar>
                            <ext:Toolbar ID="Toolbar1" runat="server">
                                <Items>
                                    <ext:Button ID="Button1" runat="server" Text="Save" Icon="Disk">
                                        <Listeners>
                                            <Click Handler="#{dsProvinces}.save();" />
                                        </Listeners>
                                    </ext:Button>
                                    <ext:Button ID="Button3" runat="server" Text="Add" Icon="Add">
                                        <Listeners>
                                            <Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPanel1}.startEditing(0, 0);" />
                                        </Listeners>
                                    </ext:Button>
                                    <ext:Button ID="Button2" runat="server" Text="Reject Changes" Icon="ArrowUndo">
                                        <Listeners>
                                            <Click Handler="#{dsProvinces}.rejectChanges();" />
                                        </Listeners>
                                    </ext:Button>
                                </Items>
                            </ext:Toolbar>
                        </TopBar>
                        <BottomBar>
                            <ext:PagingToolbar ID="PagingToolbar1" runat="server" StoreID="dsRegions" PageSize="15" />
                        </BottomBar>
                        <Listeners>
                            <Command Fn="commandHandler" />
                            <BeforeEdit Handler="return !(e.field=='Id' &amp;&amp; !e.record.newRecord);" />
                        </Listeners>
                        <LoadMask ShowMask="true" />
                        <SaveMask ShowMask="true" />
                    </ext:GridPanel>
                </ext:FitLayout>
            </Body>
        </ext:ViewPort>

    The problem is, when the view first loads, the dsRegions does not populate automatically, so the call to regionRenderer does not return anything. but if I edit the region (select a new value from the combo box), then the dsregion is populated. How can I make sure that dsRegions is populated when the gridpanel is being rendered?


  2. #2

    RE: autoload datastore records from http proxy

    bump

Similar Threads

  1. Replies: 1
    Last Post: Jan 08, 2012, 5:10 AM
  2. [CLOSED] Avoid Store Autoload on HTTP Proxy
    By dev in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Oct 12, 2011, 2:39 PM
  3. Replies: 5
    Last Post: Jun 14, 2011, 11:47 AM
  4. local paging using http proxy and partialview
    By craig2005 in forum 1.x Help
    Replies: 9
    Last Post: Jan 05, 2011, 7:04 PM
  5. Replies: 0
    Last Post: Oct 27, 2009, 9:46 AM

Posting Permissions