每次刷新页面后,Telerik窗口自动打开

时间:2013-11-04 13:40:39

标签: c# menu telerik window radwindow

我在我的项目中使用Telerik RadControls并且有一个菜单,我有一个“关于”按钮。当我单击“关于”按钮时,会弹出一个描述应用程序的窗口。问题是如果我刷新页面或导航到另一个页面然后返回到第一页,窗口会自动弹出。

目标只是在用户点击“关于”按钮时弹出该窗口。

这是我用来获取该窗口的代码:

<!--About Window-->
<telerik:RadWindowManager runat="server" EnableViewState="false" KeepInScreenBounds="true"></telerik:RadWindowManager>
<telerik:RadWindow ID="AboutMenu" Behaviors="Close" Animation="None" runat="server" Width="360px" KeepInScreenBounds="true" Height="360px" Modal="true" VisibleStatusbar="false" Skin="Glow">
<ContentTemplate>
<p style="text-align: center;">Sample Window Information</p>
</ContentTemplate>
</telerik:RadWindow>

的Javascript

function OnClientItemClick(sender, eventArgs) {
             if (window.args.get_item().get_text() == "About") {
                 var radwindow = window.$find(window.AboutMenu.ClientID);
                 window.args.set_cancel(true);
             }
         }

的.cs

 protected void MainMenu_OnItemClick(object sender, RadMenuEventArgs e)
        {
            if (e.Item.Text == "About")
            {
                AboutMenu.VisibleOnPageLoad = true;
            }
        }

窗口可以正常工作,但只要页面加载就会加载,我认为线AboutMenu.VisibleOnPageLoad = true正在发挥作用并导致错误,但当我取出该行时,它根本不会显示。

2 个答案:

答案 0 :(得分:3)

请尝试使用以下代码在itemclick上打开窗口,而不是使用 VisibleOnPageLoad

protected void MainMenu_OnItemClick(object sender, RadMenuEventArgs e)
  {
            if (e.Item.Text == "About")
            {
string script = "function f(){$find(\"" + RadWindow1.ClientID + "\").show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);"; 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true);  

            }
  }

答案 1 :(得分:0)

或者,只需使用菜单的OnCLientItemClicking事件打开RadWindow并取消回发。但是你需要修复JS代码,因为争论是在当前函数的上下文中。此外,除非您已经创建了自己的ClientID数组,否则对RW的引用可能会中断。

function OnClientItemClicking(sender, eventArgs) {
         if (eventArgs.get_item().get_text() == "About") {
             var radwindow = window.$find(<%=AboutMenu.ClientID%>);
             radwindow.show();
             eventArgs.set_cancel(true);
         }
     }