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

问题描述 投票:0回答:2

我在项目中使用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>

Java脚本

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行开始起作用并导致错误的原因,但是当我取出该行时,它根本不会显示。

c# menu telerik window radwindow
2个回答
3
投票

代替使用VisibleOnPageLoad,请尝试使用以下代码在itemclick上打开窗口。

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);  

            }
  }

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);
         }
     }
© www.soinside.com 2019 - 2024. All rights reserved.