Window skin broken (large code blocks)

3 posts, 1 answers
  1. Dan Miller
    Dan Miller avatar
    23 posts
    Member since:
    Jul 2010

    Posted 15 Jul 2010 Link to this post

    I have a radwindow on a Masterpage that I reference from the Web User Control pages of Web Forms that use the Masterpage (Masterpage -> WebForm.aspx -> WebUserControl.ascx + Codebehind.cs). On the page I have a context menu that is triggered by right-clicking on a div. One of the options of the context menu sets the navigateurl of the radwindow then makes it visible. The first time I make the radwindow appear everything is perfect (see attached: window works.png), however after closing the radwindow and doing an ajax postback on the page if I open the radwindow again, its look is totally broken (see attached: broken window.png). I have put in some code blocks that will hopefully help a bit. If there are any questions please ask!

    This is the web control:
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ContentMenu.ascx.cs" Inherits="CMSControls_ContentMenu" %>
    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
    <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy" runat="server">
      <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadContextMenuMenu">
          <UpdatedControls>
            <telerik:AjaxUpdatedControl ControlID="RadContextMenuMenu" />
            <telerik:AjaxUpdatedControl ControlID="RadWindowMaster" />
            <telerik:AjaxUpdatedControl ControlID="LabelDebug" />
            <telerik:AjaxUpdatedControl ControlID="divMenu" LoadingPanelID="radAjaxLoadingPanel" />
          </UpdatedControls>
        </telerik:AjaxSetting>
      </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
    <asp:PlaceHolder ID="PlaceHolderAdmin" runat="server" />
    <div id="divMenu">
      <asp:Literal ID="LiteralEmptyMenu" runat="server" />
      <asp:PlaceHolder ID="PlaceHolderRadMenuCMS" runat="server" />
    </div>
    <asp:Label ID="LabelDebug" runat="server" Text=""  />
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
      <script type="text/javascript">
          <asp:Literal ID="LiteralOnClientClose" runat="server" />
      </script>
     
    </telerik:RadCodeBlock>

    web control code behind, contextmenu item click function.
    protected void RadContextMenuMenu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
    {
        if (IsAdmin)
        {
            LabelDebug.Text += "RadContextMenuCMS_ItemClick " + e.Item.Text + "<br>";
            MasterPage myMaster = Page.Master;
            RadContextMenu RadContextMenuMenu =  (RadContextMenu)Shuware.ShuwareCommon.Web.FindControlByID(PlaceHolderAdmin.Controls, "RadContextMenuMenu");
            RadWindow RadWindowMaster = (RadWindow)myMaster.FindControl("RadWindowMaster"); //Create a new RadWindow object and assign it the ID of the RadWindow hidden on the page
     
            switch (e.Item.Text)
            {
                case "Edit":
                    RadWindowMaster.NavigateUrl = "~/contentmenueditor.aspx?id=" + Server.UrlEncode(MenuID.ToString());
                    RadWindowMaster.OnClientClose = "OnClientclose" + "_" + this.ID;
                    RadWindowMaster.AutoSize = false;
                    RadWindowMaster.Visible = true;
                    RadWindowMaster.Height = Unit.Pixel(555);
                    RadWindowMaster.Width = Unit.Pixel(485);
                    RadContextMenuMenu.Items[1].Visible = true;
                    RadContextMenuMenu.Items[2].Visible = true;
                    break;
                case "Save":
                    RadContextMenuMenu.Items[1].Visible = false;
                    RadContextMenuMenu.Items[2].Visible = false;
                    RadWindowMaster.Visible = false;
                    Response.Redirect(Shuware.ShuwareCommon.Web.GetCurrentURL()); //redirect back to the same page
                    break;
                case "Cancel":
                    RadContextMenuMenu.Items[1].Visible = false;
                    RadContextMenuMenu.Items[2].Visible = false;
                    RadWindowMaster.Visible = false;
                    break;
                case "Admin":
                    RadContextMenuMenu.Items[1].Visible = false;
                    RadContextMenuMenu.Items[2].Visible = false;
                    RadWindowMaster.OnClientClose = "OnClientclose" + "_" + this.ID;
                    RadWindowMaster.NavigateUrl = "~/admin.aspx";
                    RadWindowMaster.Visible = true; //show the admin window
                    break;
                default:
                    RadContextMenuMenu.Items[1].Visible = false;
                    RadContextMenuMenu.Items[2].Visible = false;
                    RadWindowMaster.Visible = false;
                    break;
            }
        }
    }

    This sets the onclientclose function for the radwindow.
    string strScript = "function OnClientclose" + "_" + this.ID + "(sender, eventArgs)\n{\n var arg = eventArgs.get_argument();\nif(arg) {\n__doPostBack('ctl00$" + RadContextMenuMenu.ClientID.Replace("_", "$") + "', arg);\n}\n}";
    LiteralOnClientClose.Text += strScript;
     
    /*This becomes the below code at runtime:
    function OnClientclose_ContentMenu1(sender, eventArgs)
    {
     var arg = eventArgs.get_argument();
     if(arg) {
      __doPostBack('ctl00$ctl00$ContentPlaceHolder1$ContentMenu1$RadContextMenuMenu', arg);
     }
    }
    */
  2. Answer
    Georgi Tunev
    Admin
    Georgi Tunev avatar
    7207 posts

    Posted 16 Jul 2010 Link to this post

    Hello Daniel,

    Make sure that you have set EnableAjaxSkinRendering to true whenever you show the RadWindow from the server.


    Regards,
    Georgi Tunev
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Dan Miller
    Dan Miller avatar
    23 posts
    Member since:
    Jul 2010

    Posted 16 Jul 2010 Link to this post

    Well that was an incredibly simple answer. Worked like a charm! Thanks a lot :)
Back to Top