[CLOSED] Problems with Feed Viewer:Microsoft JScript runtime error: 'AnnouncementControl_TopicStore' is undefined

  1. #1

    [CLOSED] Problems with Feed Viewer:Microsoft JScript runtime error: 'AnnouncementControl_TopicStore' is undefined

    I have dyamical user control that loads the feed viewer, but i keep getting an error when it loads

    Default.aspx
    ---------------
    
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CooliteDemo._Default" %>
    <%@ Register TagPrefix="uc10" TagName="RSS" Src="~/Planroom/UserControls/RSS.ascx" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <head id="Head1" runat="server">
        <title>BlueprintOnline</title>
        <style type="text/css">
            #ux-taskbar-start, #TaskBarStart-xsplit
            {
                display: none;
            }
            .start-button
            {
                background-image: url(vista_start_button.gif) !important;
            }
            .icon-AddressBook
            {
                background-image: url(resources/images/address_book_btn_off.png) !important;
                background-repeat: no-repeat;
                background-position: center bottom;
                filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="resources/images/address_book_btn_off.png");
            }
            .desktopEl
            {
                position: absolute !important;
                background-color: black;
            }
            .desktopEl1
            {
                position: absolute !important;
            }
            .desktopElText
            {
                color: #4dc8e9;
                font-size: medium;
                font-weight: bold;
            }
        </style>
    </head>
    
    
    <body>
        <form id="DefaultForm" runat="server">
        
        <ext:Hidden ID="ShowRSS" runat="server" />
        <ext:ResourceManager ID="ResourceManager1" DirectMethodNamespace="BPOLX" runat="server"
            RethrowAjaxExceptions="true" Theme="Slate">
        </ext:ResourceManager>
        <ext:Desktop ID="MyDesktop" runat="server" BackgroundColor="Black" ShortcutTextColor="White">
            <Modules>
                 <ext:DesktopModule ModuleID="DesktopModule7" WindowID="winRSS">
                    <Launcher ID="Launcher1" runat="server" Text="RSS" Icon="UserTick" />
                </ext:DesktopModule>
            </Modules>
            <Shortcuts>
                  <ext:DesktopShortcut ModuleID="DesktopModule7" X="100" Y="270" IconCls="shortcut-icon icon-AddressBook" />
            </Shortcuts>
        </ext:Desktop>
    
          <ext:DesktopWindow ID="winRSS" runat="server" Title="RSS" Icon="SoundOut"
            PageX="125" PageY="125" Maximizable="false" Layout="Fit">
            <Items>
                <ext:Panel runat="server" ID="pnlRSS" />
            </Items>
            <Listeners>
                <BeforeRender Handler="this.setSize(600, 460);" />
            </Listeners>
            <DirectEvents>
                <BeforeShow OnEvent="ShowRSSControl" />
                <BeforeHide OnEvent="HideRSSControl" />
            </DirectEvents>
        </ext:DesktopWindow>
        <script src="Resources/FeedViewer.js" type="text/javascript"></script>
        </form>
    </body>
    </html>
    Default.ascs.cs
    ---------------
     protected void Page_Init(object sender, EventArgs e) // use Page_Init 
            {
                var a = Request["ShowRSS"];
                if (Request["ShowRSS"] == "true")
                {
                    var rssControl = (RSS)LoadControl("Planroom/UserControls/RSS.ascx");
                    rssControl.ID = "RSSControl";
                    pnlRSS.ContentControls.Add(rssControl);
                }
    
            }
    
         public void HideRSSControl(object sender, DirectEventArgs e)
            {
                ShowRSS.Text = "false";
    
            }
    
    
            protected void ShowRSSControl(object sender, DirectEventArgs e)
            {
                try
                {
                    var rssControl = (RSS)LoadControl("Planroom/UserControls/RSS.ascx");
                    rssControl .ID = "rssControl";
                    pnlRSS.ContentControls.Add(rssControl);
                    pnlRSS.Render();
                    ShowRSS.Text = "true";
                }
                catch (Exception ex)
                {
    
                }
                return;
            }
    RSS.ascx
    --------------
    
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RSS.ascx.cs"
        Inherits="CooliteDemo.Planroom.UserControls.RSS" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <%@ Register Assembly="Ext.Net.Examples" Namespace="Ext.Net.Examples.FeedViewer" TagPrefix="feed" %>
    
    
    <feed:FeedViewPort ID="FeedViewPort1" runat="server" />
    when i click on the desktop icon, I get the Java script erro: Microsoft JScript runtime error: 'AnnouncementControl_TopicStore' is undefined
    Last edited by Daniil; Feb 16, 2011 at 1:36 PM. Reason: [CLOSED]
  2. #2
    Hi,

    It looks like our FeedViewPort class is not designed for using in user control.

    Well, you could apply the following change to FeedGrid.cs, then rebuild solution and re-test. But I'm not sure it will work.

    The FeedGrid.cs location is
    <SVN folder>\Ext.Net.Examples\Examples\Combination_Samp les\Applications\Feed_Viewer\Classes\UI\FeedGrid.c s

    Change to apply
    private void BuildStore()
    {
        this.store = new Store
        {
            ID = "TopicStore",
            IDMode = IDMode.Explicit, //added
            AutoLoad = false,
            
            //here is the same code
        };
    
        this.Controls.Add(this.store);
    }
    One change - the following code
    IDMode = IDMode.Explicit,
    is added.
  3. #3
    that did not work ...The script error does not appear anymore, but it just renders a blank screen....
  4. #4
    Hi,

    FeedViewPort is not designed for reusing.

    1. ViewPort cannot be placed inside another panel. You have to change ViewPort by panel or container
    2. If you place user control to ContentControls then wrap user control markup by FitLayout
    3. Move all store to inner Store collection of respective data controls (for example, grid.Store.Add(new Store{...})).
    4. Set IDMode="Static" for FeedViewPort
    5. FeedViewPort is not designed for rendering because all ids are rendered to js script class. When you rerender control ids will be different (if you did not define it explictly)

    So, the most easy way is using AutoLoad with IFrame mode and load the page with FeedViewPort to DesktopWindow

Similar Threads

  1. Replies: 2
    Last Post: May 08, 2012, 3:34 PM
  2. Replies: 5
    Last Post: Mar 16, 2012, 2:47 PM
  3. Replies: 2
    Last Post: Jul 18, 2011, 10:17 PM
  4. Microsoft JScript runtime error: 'Ext' is undefined
    By Satyanarayana murthy in forum Open Discussions
    Replies: 11
    Last Post: Mar 31, 2010, 11:54 AM
  5. Replies: 7
    Last Post: Mar 11, 2010, 3:01 PM

Tags for this Thread

Posting Permissions