[CLOSED] Unable to get property 'getStore' of undefined or null reference

Page 1 of 2 12 LastLast
  1. #1

    [CLOSED] Unable to get property 'getStore' of undefined or null reference

    Last edited by Daniil; Oct 30, 2013 at 4:26 PM. Reason: [CLOSED]
  2. #2
    Hi @jesperhp,

    What is the object which the getStore method is called on? You might use a wrong reference.
  3. #3
    On Page_Load I Am using the Piece of code and that piece of code generate the error
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            ResourceManager rm = (ResourceManager)(this.Master.FindControl("ResourceManager"));
            rm.Listeners.DocumentReady.Handler += "UnitStatus.setIsAdmin(" + RightString + ");";
            rm.Listeners.DocumentReady.Handler += "Ext.getCmp(UnitStatus.getUnitStatusGridId()).getStore().load();";
        }
    </script>
    Actually using GridPanelId want to get store and load in Grid
    and below is my panel where I want to load store by using GridPanelId

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" MasterPageFile="~/Views/Shared/Site.Master" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    
    <%@ Register TagName="UnitStatusGrid" TagPrefix="uc1" Src="~/Views/UnitStatus/UnitStatusGrid.ascx" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            bool Right = InfoHelpDeskWebApp.Models.User.IsLoggedinUserAdministrator();
            string RightString = Right ? "true" : "false";
            ResourceManager rm = (ResourceManager)(this.Master.FindControl("ResourceManager"));
            rm.Listeners.DocumentReady.Handler += "UnitStatus.setIsAdmin(" + RightString + ");";
            rm.Listeners.DocumentReady.Handler += "Ext.getCmp(UnitStatus.getUnitStatusGridId()).getStore().load();";
        }
    </script>                           
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
        <uc1:UnitStatusGrid  ID="UnitStatusGrid1" runat="server" storeUrl="/UnitStatus/LoadUnitStatus" />
    </asp:Content>
    
    
    <asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
        <script src="../../Scripts/AppScripts/UnitStatus.js" type="text/javascript"></script>
        <script type="text/javascript" src="../../Scripts/jquery-1.7.1.js"></script>
    </asp:Content>
    Thanks
  4. #4
    and GridPanel

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" AutoEventWireup="true" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <%@ Register Src="~/Views/Shared/menu/GeneralContextMenu.ascx" TagName="GeneralContextMenu"
        TagPrefix="uc2" %>
    <%@ Register Src="~/Views/Shared/Controls_Store/Store_UnitStatus.ascx" TagName="storeUnitsStatus"
        TagPrefix="sotre_UnitsStatus" %>
    <%@ Import Namespace="InfoHelpDeskWebApp.HelperClasses" %>
    <script runat="server">
        public string messageEdit, messageAdd, messageDelete, messageError, messageAlertStatus, messageRecordError, messageAddCategory, messageDetail, messageAddDetail;
        protected override void OnInit(EventArgs e)
        {
            this.GeneralContextMenu1.AddButton = this.btnAdd;
            this.GeneralContextMenu1.EditButton = this.btnEdit;
            this.GeneralContextMenu1.DeleteButton = this.btnDelete;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            this.store_UnitsStatus.Url = this.storeUrl;
            this.GridPanel_UnitSataus.StoreID = this.store_UnitsStatus.StoreId;
            this.GridPanel_UnitSataus.ResourceManager.Listeners.DocumentReady.Handler += "this." + this.GridPanel_UnitSataus.ClientID + ".on('ItemContextMenu',function(view, record, item, index, e){UnitStatus.setIndex(" + this.GridPanel_UnitSataus.ClientID + ",index);this.getSelectionModel().selectRow(index);#{" + GeneralContextMenu1.ContextMenuID.ToString() + "}.showAt(e.getXY());});";
            //this.GridPanel_UnitSataus.ResourceManager.Listeners.DocumentReady.Handler += "this." + this.GridPanel_UnitSataus.ClientID + ".on('RowContextMenu',function(" + this.GridPanel_UnitSataus.ClientID + ",rowIndex,e){UnitStatus.setIndex(" + this.GridPanel_UnitSataus.ClientID + ",rowIndex); e.preventDefault();this.getSelectionModel().selectRow(rowIndex);#{" + GeneralContextMenu1.ContextMenuID.ToString() + "}.showAt(e.getXY());});";
        }
        public string storeUrl
        {
            get { return this.store_UnitsStatus.Url; }
            set { this.store_UnitsStatus.Url = value; }
        }
    </script>
    <script type="text/javascript">
        Ext.applyIf(UnitStatus, {
            dynamicPanelId: function () {
                var j = '';
                j = '<%=this.windowDynamic.ClientID%>';
                var id = String(j);
                return id;
            },
            getUnitStatusGridId: function () {
                var Container = "";
                Container = '<%=GridPanel_UnitSataus.ClientID%>';
                return Container;
            }
        });
    </script>
    <sotre_UnitsStatus:storeUnitsStatus ID="store_UnitsStatus" runat="server" />
    <uc2:GeneralContextMenu ID="GeneralContextMenu1" runat="server" />
    <ext:Button ID="btnEdit" Text="<%$ Resources:HelpDeskWebApp, Edit%>" runat="server"
        Icon="ApplicationEdit" Hidden="true">
        <DirectEvents>
           
        </DirectEvents>
    </ext:Button>
    <ext:Viewport ID="Viewport1" runat="server" Layout="Fit">
        <Items>
            <ext:Panel ID="PanelContent" runat="server" Layout="Fit" Region="Center">
                <Items>
                    <ext:GridPanel ID="GridPanel_UnitSataus" runat="server" IDMode="Explicit">
                        <TopBar>
                            <ext:Toolbar ID="Toolbar1" runat="server">
                                <Items>
                                    <ext:Button ID="btnAdd" Text="<%$Resources:HelpDeskWebApp, Add%>" runat="server"
                                        Icon="Add">
                                        
                                    </ext:Button>
                                    <ext:Button ID="btnDelete" Text="<%$Resources:HelpDeskWebApp, Delete%>" runat="server"
                                        Icon="Cross">
                                     
                                    </ext:Button>
                                </Items>
                            </ext:Toolbar>
                        </TopBar>
                        <ColumnModel ID="ColumnModel1" runat="server">
                            <Columns>
                                <ext:Column ColumnID="col_UnitStatusID" runat="server" DataIndex="Id" Text="<%$Resources:HelpDeskWebApp, ID%>">
                                </ext:Column>
                                <ext:Column ColumnID="col_UnitStatus" runat="server" DataIndex="Status" Text="<%$Resources:HelpDeskWebApp, Status%>">
                                </ext:Column>
                                <ext:CommandColumn runat="server" Width="25" Hideable="false">
                                    <Commands>
                                        <ext:GridCommand CommandName="edit" Icon="ApplicationFormEdit">
                                            <ToolTip Text="<%$Resources:HelpDeskWebApp, Edit%>" />
                                        </ext:GridCommand>
                                    </Commands>
                                </ext:CommandColumn>
                            </Columns>
                        </ColumnModel>
                        <View>
                            <ext:GridView ID="view" runat="server" />
                        </View>
                        <Listeners>
                            <ItemContextMenu Handler="e.preventDefault()" />
                        </Listeners>
                        <SelectionModel>
                            <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single" />
                        </SelectionModel>
                        <BottomBar>
                            <ext:PagingToolbar runat="server" />
                        </BottomBar>
                        <Features>
                            <ext:GridFilters ID="gridfilters" runat="server" Local="false">
                                <Filters>
                                    <ext:NumericFilter DataIndex="Id" />
                                    <ext:StringFilter DataIndex="Status" />
                                </Filters>
                            </ext:GridFilters>
                        </Features>
                        <Listeners>
                            <ItemClick Handler="UnitStatus.setIndex(this,index);" />
                            <ItemDblClick Handler="UnitStatus.setIndex(this,rowIndex);#{btnEdit}.fireEvent('click',#{btnEdit})" />
                        </Listeners>
                    </ext:GridPanel>
                </Items>
            </ext:Panel>
        </Items>
    </ext:Viewport>
    <div id="windowDynamic" runat="server">
    </div>
  5. #5
    So, does the error occur in the DocumentReady handler? If so, it might be too early to access a GridPanel there.

    A GridPanel's AfterRender listener might be better for that.
  6. #6
    but its working in v1.1 and please provide example
    Thanks
  7. #7
    Such behavior (working) is not guaranteed in v1.x as well.
  8. #8
    can you provide demo example for such behavior(working) in v2
  9. #9
    Hello!

    Quote Originally Posted by jesperhp View Post
    can you provide demo example for such behavior(working) in v2
    Sorry, can you clarify, did you use @Daniil's suggestion to use AfterRender? DocumentReady means that document loaded all required files but it doesn't mean it rendered all components. It probably worked in v1.1 due to difference in execution speed between 1.1 and 1.2, however it's dofficult to say. So try suggested by @Daniil solution and if it won't work we will investigate it more but you will need to provide Store_UnitStatus.ascx.

    Another solution is to set small delay for DocumentReady handler, probably around 50-100.
  10. #10
    Store of grid
    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        protected override void OnInit(EventArgs e)
        {
            this.store_UnitStatus.ID = this.ID + "_store";
            base.OnInit(e);
        }
        public string Url
        {
            get
            {
                return (this.store_UnitStatus.Proxy.Primary as AjaxProxy).Url;
            }
            set
            {
                (this.store_UnitStatus.Proxy.Primary as AjaxProxy).Url = value;
            }
        }
        public string StoreId
        {
            get
            {
                return this.store_UnitStatus.ID;
            }
        }
    </script>
    <ext:Store ID="store_UnitStatus" runat="server" IDMode="Static" RemoteSort="true"
        AutoDataBind="true" PageSize="24">
        <Proxy>
            <ext:AjaxProxy Json="true">
                <ActionMethods Read="POST" />
                <Reader>
                    <ext:JsonReader Root="rows" IDProperty="Id" />
                </Reader>
            </ext:AjaxProxy>
        </Proxy>
        <Model>
            <ext:Model runat="server" ID="Model_UnitStatus">
                <Fields>
                    <ext:ModelField Name="Id" SortDir="ASC" />
                    <ext:ModelField Name="Status" />
                </Fields>
            </ext:Model>
        </Model>
        <Parameters>
            <ext:StoreParameter Name="limit" Value="24" Mode="Raw" />
            <ext:StoreParameter Name="start" Value="0" Mode="Raw" />
            <ext:StoreParameter Name="dir" Value="ASC" />
            <ext:StoreParameter Name="sort" Value="Id" />
            <ext:StoreParameter Name="gridfilters" Value="" />
        </Parameters>
    </ext:Store>
Page 1 of 2 12 LastLast

Similar Threads

  1. Replies: 1
    Last Post: Nov 12, 2012, 2:29 PM
  2. Replies: 0
    Last Post: Oct 26, 2012, 7:48 AM
  3. Replies: 1
    Last Post: Oct 25, 2012, 1:47 PM
  4. Replies: 1
    Last Post: Sep 22, 2012, 8:08 PM
  5. Null Reference Exception in MVC
    By geraldf in forum 2.x Help
    Replies: 1
    Last Post: Sep 07, 2012, 6:11 PM

Posting Permissions