[CLOSED] App.direct is undefined

  1. #1

    [CLOSED] App.direct is undefined

    Hi I have dropdown which contains treepanel
    When I click on dropdown that give me treepanel after that when I click to expand the treePanel then I got that error because treepanel have a listener beforeload where I call nodeLoad function that contains ( App.direct.NodeLoad(node.getId(), )
    App.direct is undefined
    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <%@ Register Src="~/Views/Shared/Controls_Store/store_Company.ascx" TagName="Companies"
        TagPrefix="store" %>
    <script runat="server">
        [DirectMethod]
        public static string NodeLoad(string nodeID)
        {
            NodeCollection nodes = new Ext.Net.NodeCollection();
    
    
            if (!string.IsNullOrEmpty(nodeID))
            {
                for (int i = 1; i < 6; i++)
                {
                    Node asyncNode = new Node();
                    asyncNode.Text = nodeID + i;
                    asyncNode.NodeID = nodeID + i;
                    nodes.Add(asyncNode);
                }
    
    
                for (int i = 6; i < 11; i++)
                {
                    Node treeNode = new Node();
                    treeNode.Text = nodeID + i;
                    treeNode.NodeID = nodeID + i;
                    treeNode.Leaf = true;
                    nodes.Add(treeNode);
                }
            }
    
    
            return nodes.ToJson();
        }
        protected override void OnLoad(EventArgs e)
        {
            this.cmb_Companies.StoreID = this.store_Companies1.StoreId;
            base.OnLoad(e);
        }
        
       
    </script>
    <script type="text/javascript">
        var nodeLoad = function (store, operation, options) {
            var node = operation.node;
            console.log(App);
    
    
            App.direct.NodeLoad(node.getId(), {
                success: function (result) {
                    node.set('loading', false);
                    node.set('loaded', true);
                    var data = Ext.decode(result);
                    node.appendChild(data, undefined, true);
                    node.expand();
                },
    
    
                failure: function (errorMsg) {
                    Ext.Msg.alert('Failure', errorMsg);
                }
            });
    
    
            return false;
        };
    </script>
    <store:Companies ID="store_Companies1" runat="server" Url="/Companies/getAllCompanies" />
    <ext:Window runat="server" ID="window_Detail" Width="400px" Layout="Form" Title="<%$ Resources:HelpDeskWebApp,AddNewKnowledgeBase%>"
        Padding="10" AutoHeight="true" Modal="true" Hidden="false" Closable="true" Resizable="false"
        CloseAction="Hide">
        <Content>
            <ext:FormPanel ID="frmPanelKnowledgeBaseCategories" runat="server" BodyStyle="background-color:#dfe8f6"
                MonitorValid="true">
                <Content>
                    <ext:TextField FieldLabel="<%$ Resources:HelpDeskWebApp,Name%>" DataIndex="CategoryName"
                        ID="txtCategoryName" runat="server" AnchorHorizontal="94%" AllowBlank="false">
                    </ext:TextField>
                    <ext:ComboBox ID="cmb_Companies" DataIndex="CompanyID" runat="server" AllowBlank="false"
                        Editable="false" DisplayField="Name" ValueField="CompanyID" AnchorHorizontal="95%"
                        FieldLabel="<%$ Resources:HelpDeskWebApp,CompanyName%>" EmptyText="Select Company">
                    </ext:ComboBox>
                    <ext:DropDownField ID="cmb_KnowledgeBase_ParentCategory" runat="server" Anchor="95%"
                        FieldLabel="<%$ Resources:HelpDeskWebApp,ParentCategory%>" Flex="1" AllowBlank="false">
                        <Component>
                            <ext:TreePanel runat="server" Height="300" AutoScroll="true" EnableDD="false" ID="tree_Category">
                                <Root>
                                    <ext:Node NodeID="0" Text="<%$ Resources:HelpDeskWebApp,KnowledgeBase%>" />
                                </Root>
                                <Listeners>
                                    <BeforeLoad Fn="nodeLoad" />
                                </Listeners>
                            </ext:TreePanel>
                        </Component>
                    </ext:DropDownField>
                </Content>
                <Listeners>
                    <ValidityChange Handler="#{btnAdd}.setDisabled(!valid);" />
                </Listeners>
            </ext:FormPanel>
        </Content>
        <Buttons>
            <ext:Button ID="btnAdd" runat="server" Text="<%$ Resources:HelpDeskWebApp,Add%>"
                Icon="Disk">
                <DirectEvents>
                    <Click Url="/KnowledgeBaseCategories/SaveKnowledgeBaseCategories" Type="Load" Method="POST"
                        Success="
                    #{window_Detail}.hide();
                     Ext.getCmp(KnowledgeBaseCategory.getCategoryGridId()).store.reload();
                     Ext.net.Notification.show({
                     title:'Information',
                     html:result
                     });" CleanRequest="true">
                        <ExtraParams>
                            <ext:Parameter Name="id" Value="KnowledgeBaseCategory.getId()" Mode="Raw">
                            </ext:Parameter>
                            <ext:Parameter Name="name" Value="#{txtCategoryName}.getValue()" Mode="Raw">
                            </ext:Parameter>
                            <ext:Parameter Name="companyId" Value="#{cmb_Companies}.getValue()" Mode="Raw">
                            </ext:Parameter>
                            <ext:Parameter Name="parentCategoryId" Value="KnowledgeBaseCategory.getParentCategoryId()"
                                Mode="Raw">
                            </ext:Parameter>
                        </ExtraParams>
                    </Click>
                </DirectEvents>
            </ext:Button>
            <ext:Button ID="btnCancel" runat="server" Text="<%$ Resources:HelpDeskWebApp,Cancel%>"
                Icon="Cross">
                <Listeners>
                    <Click Handler="#{window_Detail}.hide()" />
                </Listeners>
            </ext:Button>
        </Buttons>
    </ext:Window>
    Another question is that
    What means APP ?? Is thier any thing which could be used insted of APP???
    Thanks
    Last edited by Daniil; Dec 04, 2013 at 1:19 PM. Reason: [CLOSED]
  2. #2
    The Image of TreePanel

    Click image for larger version. 

Name:	KnowledgeBaseCategory.PNG 
Views:	19 
Size:	57.5 KB 
ID:	7298
  3. #3
    Hi @jesperhp,

    Are you working with Ext.NET v1? If so, you should use "Ext.net.DirectMethods" instead of "App.direct". The second one is used in Ext.NET v2.
  4. #4
    Quote Originally Posted by Daniil View Post
    Hi @jesperhp,

    Are you working with Ext.NET v1? If so, you should use "Ext.net.DirectMethods" instead of "App.direct". The second one is used in Ext.NET v2.
    Now I am using Ext.net V2.3
    but App,Direct is Undefined
  5. #5
    One more thing - DirectMethods are not supposed to be defined in a view. They must be defined in a controller.

    Please see the Controller here:
    http://mvc.ext.net/#/Events/DirectMethod/
  6. #6
    App always undefined

    I thinks the issue with App in my application, when ever I deal with App. something I got Exception or Error
  7. #7
    Maybe, you overrode Namespace somewhere? In ResourceManage or Web.config, for example.
  8. #8
    Please check Site.Master and Web.Config

    Site.Master
    <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
    
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!DOCTYPE html>
    <html>
    <head runat="server">
        <title></title>
        <ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
        <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager" runat="server" ShowWarningOnAjaxFailure="true"
            LicenseKey="">
            <Listeners>
                <DocumentReady Delay="100" />
            </Listeners>
        </ext:ResourceManager>
        <%
        //this.ResourceManager.Theme = Theme.Gray;//(Theme)Enum.Parse(typeof(Theme), new HelpDeskWebApp.Models.HelpDeskDBSet().Settings.First(s => s.Name == "theme").SettingValue);
        %>
        <asp:ContentPlaceHolder ID="MainContent" runat="server">
        </asp:ContentPlaceHolder>
        </form>
    </body>
    </html>
    and Web.Config
    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <configSections>
    
    
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <!--<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />-->
        <section name="extnet" type="Ext.Net.GlobalConfig" requirePermission="false" />
        <sectionGroup name="elmah">
          <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
          <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
          <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
          <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
          <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah" />
        </sectionGroup>
    
    
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <section name="InfoHelpDeskWebApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
      </configSections>
    
    
      <elmah>
        <security allowRemoteAccess="0" />
        <errorLog type="Elmah.SqlErrorLog, Elmah" connectionString="Data Source=.;Initial Catalog=test;Trusted_Connection=True" />
      </elmah>
    
    
      <connectionStrings>
        <add name="HelpDeskDBSet" providerName="system.data.sqlclient" connectionString="Data Source=.; Initial Catalog=InfoHelpDesk;User ID=Munir;Password=123;Integrated Security=false" />
      </connectionStrings>
    
    
      <system.diagnostics>
        <trace autoflush="true">
          <listeners>
            <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <add name="TestTracer" type="System.Diagnostics.TextWriterTraceListener, System, Version=2.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="HDITrace.log" />
          </listeners>
        </trace>
      </system.diagnostics>
    
    
      <appSettings>
        <add key="webpages:Version" value="2.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="PreserveLoginUrl" value="true" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    
    
        <add key="CacheRefreshTime" value="300" />
        <add key="licensekey" value="oA5aIq017D+n2W1hnSYzyLki8w3t3dzfF38G7G9oWAKQsog1jBgho+HIAnoiHtdp" />
        <add key="eventLogSource" value="INNDEVELOP" />
      </appSettings>
    
    
    
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" >
    
    
          <assemblies>
            <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <!--added by munir-->
            <add assembly="System.DirectoryServices, Version=2.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </assemblies>
    
    
        </compilation>
        <authentication mode="Windows">
        </authentication>
        <httpHandlers>
          <add path="*/ext.axd" verb="*" type="Ext.Net.ResourceHandler" validate="false" />
          <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>
        <pages renderAllHiddenFieldsAtTopOfForm="true" validateRequest="false">
          <namespaces>
            <add namespace="System.Web.Helpers" />
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Optimization" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Web.WebPages" />
          </namespaces>
    
    
          <controls>
            <add tagPrefix="Contextmenu" assembly="InfoHelpDeskWebApp" namespace="InfoHelpDeskWebApp.HelperClasses.ContextMenu" />
            <add assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" />
            <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
          </controls>
    
    
          <!--<controls>
            <add assembly="Ext.Net" namespace="Ext.Net" tagPrefix="ext" />
            <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
          </controls>-->
        </pages>
    
    
    
    
    
    
        <!--<httpHandlers>
          <add path="*/ext.axd" verb="*" type="Ext.Net.ResourceHandler" validate="false" />
          <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
        </httpHandlers>-->
        <httpModules>
          <add name="DirectRequestModule" type="Ext.Net.DirectRequestModule, Ext.Net" />
          <add name="MsAjaxDeltaErrorLog" type="Elmah.MsAjaxDeltaErrorLogModule, Elmah" />
          <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
        </httpModules>
        <globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>
      </system.web>
    
    
    
    
    
    
    
    
      <system.webServer>
        <security>
          <authentication>
            <anonymousAuthentication enabled="false"/>
            <windowsAuthentication enabled="true"/>
          </authentication>
        </security>
        <validation validateIntegratedModeConfiguration="false" />
        <modules>
          <add name="DirectRequestModule" preCondition="managedHandler"  type="Ext.Net.DirectRequestModule, Ext.Net"
            />
        </modules>
    
    
        <handlers>
          <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
          <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
          <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
          <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
          <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
          <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
          <add name="DirectRequestHandler" verb="*" path="*/ext.axd" preCondition="integratedMode" type="Ext.Net.ResourceHandler" />
          <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
        </handlers>
      </system.webServer>
      <runtime>
    
    
        <NetFx40_LegacySecurityPolicy enabled="true" />
        <legacyCasPolicy enabled="false" />
    
    
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
            <bindingRedirect oldVersion="1.0.0.0-5.0.7" newVersion="5.0.8" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Ext.Net.Utilities" publicKeyToken="2c34ac34702a3c23" />
            <bindingRedirect oldVersion="0.0.0.0-2.2.1" newVersion="2.3.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Transformer.NET" publicKeyToken="e274d618e7c603a7" />
            <bindingRedirect oldVersion="0.0.0.0-2.1.0" newVersion="2.1.1" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    
    
    
    
      <location path="elmah.axd">
        <system.web>
          <!--<httpHandlers>
            <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
          </httpHandlers>-->
    
    
          <authorization>
            <deny users="?" />
          </authorization>
        </system.web>
        <system.webServer>
          <handlers>
            <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
          </handlers>
        </system.webServer>
      </location>
    
    
    
    
      <applicationSettings>
        <InfoHelpDeskWebApp.Properties.Settings>
          <setting name="ApplicationName" serializeAs="String">
            <value>HelpDesk</value>
          </setting>
          <setting name="VersionName" serializeAs="String">
            <value>Beta</value>
          </setting>
        </InfoHelpDeskWebApp.Properties.Settings>
      </applicationSettings>
    
    
    
    
      <system.serviceModel>
        <bindings>
          <wsHttpBinding>
            <binding name="WSHttpBinding_IValidate" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
              <security mode="Message">
                <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
                <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
              </security>
            </binding>
          </wsHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://localhost:4798/Validate.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IValidate" contract="IValidate" name="WSHttpBinding_IValidate">
            <identity>
              <dns value="localhost" />
            </identity>
          </endpoint>
        </client>
      </system.serviceModel>
      <system.data>
        <DbProviderFactories>
          <remove invariant="System.Data.SqlServerCe.4.0" />
          <add name="Microsoft SQL Server Compact Edition Client Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition Client 4.0" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
      </system.data>
      <!--<entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
      </entityFramework>-->
      <extnet licenseKey="NTkzMzMwNjMsMiw5OTk5LTEyLTMx" scriptMode="Debug"  theme="Gray" />
    </configuration>
  9. #9
    Ok, you seem not to override the Namespace.

    Any, DirectMethods should not be defined in a View. This post is still actual.
    http://forums.ext.net/showthread.php...l=1#post122045
  10. #10
    Ok
    Mark it Close

Similar Threads

  1. Replies: 2
    Last Post: May 13, 2014, 8:52 AM
  2. [CLOSED] Output Cache issue with Direct Method / Direct Event
    By amitpareek in forum 1.x Legacy Premium Help
    Replies: 18
    Last Post: Mar 01, 2013, 5:03 AM
  3. Direct method and direct event over SSL?
    By dimitar in forum 1.x Help
    Replies: 0
    Last Post: Oct 08, 2011, 8:09 PM
  4. Replies: 3
    Last Post: Apr 20, 2010, 12:21 PM
  5. ext undefined
    By reza_muhammad in forum 1.x Help
    Replies: 0
    Last Post: Nov 17, 2009, 1:52 AM

Posting Permissions