2

需要通过按钮单击事件在 radWindow 中打开网页。尝试从客户端执行此操作,但它出现然后立即消失。我认为按钮单击导致回发到服务器......因此,我目前正在尝试使用下面发布的服务器端代码(C#)来解决这个问题。

问题:需要打开 rad 窗口而不将它们添加到窗口集合或在关闭时从窗口集合中删除它们。在关闭 rad 窗口时,它们不会从窗口集合中删除。这会导致在按下新按钮的次数内打开相同的窗口。第一次单击打开一个窗口,第二次单击新按钮打开两个窗口,等等......有什么想法吗?

C# - 打开多个页面

    RadWindow newWindow = new RadWindow();
    newWindow.NavigateUrl = "WebPage.aspx";
    newWindow.Top = Unit.Pixel(22);
    newWindow.VisibleOnPageLoad = true;
    newWindow.Modal = true;
    newWindow.Left = Unit.Pixel(0);
    newWindow.Height = 530;
    newWindow.Width = 1000;
    winMgr.Windows.Add(newWindow);

JavaScript - 回发问题?页面打开并立即消失。

    var oManager = '<%=winMgr.ClientID %>';
    var oManager = window.radopen("WebPage.aspx", null);
    oManager.setSize(1000, 530); //Width, Height
    oManager.center();
    oManager.SetActive();

谢谢你的帮助!

4

3 回答 3

3

根据艾莉森的解决方案,单击按钮时会显示 rad 窗口;但马上又消失了。我尝试使用下面的代码。在我的情况下它工作正常。

<script type="text/javascript">
    function openRadWin()
    {
        radopen("http://www.google.com", "RadWindow1");
    }
</script>
<asp:Button ID="Button1" Text="Show Window" runat="server" OnClientClick="openRadWin();"  />

希望,这对某人有用。

于 2011-12-15T03:07:47.080 回答
2

单击按钮后,您需要返回 false 。

尝试将您的按钮/JavaScript 设置为类似于以下内容:

按钮 (aspx)

<asp:Button ID="btnDoSomething" runat="server" Text="Do Something" OnClientClick="return myFunction();" />

JavaScript

function myFunction() {
    var oManager = window.radopen("WebPage.aspx", null);
    oManager.setSize(1000, 530); //Width, Height
    oManager.center();
    oManager.SetActive();
    return false;
}
于 2011-05-16T16:23:07.813 回答
2

首先 - 基础知识 :) 您想在客户端(通过 JavaScript)还是在服务器上打开 RadWindow?

案例 1 - 在客户端: Alison 是对的 - 如果您想在客户端打开 RadWindow(并且没有与该回发元素挂钩的服务器端事件),您需要取消回发。这可以通过使用 OnClientClick="return myFunction();"来完成 和“ return false; ”在函数本身的末尾(就像艾莉森建议的那样),或者:

OnClientClick="myFynction(); return false;"

当客户端点击被取消时,应该没有回发。

案例 2 - 在服务器上:通过将VisibleOnPageLoad设置为true从服务器显示RadWindow 。但是请注意,RadWindow / RadWindowManager 在回发中保持其状态,包括所有服务器端属性,包括 VisibleOnPageLoad。话虽如此,如果您只想显示一次 RadWindow,您还需要为您正在使用的 RadWindowManager 设置 EnableViewState=false 。

于 2011-05-17T06:48:43.133 回答