RadWindow:从C#打开窗口

时间:2011-05-16 15:51:37

标签: javascript visual-studio-2010 button telerik radwindow

需要通过按钮点击事件在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();

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

根据Alison的解决方案,点击按钮时会显示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();"  />

希望,对某人有用。

答案 1 :(得分: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;
}

答案 2 :(得分:2)

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

案例1 - 在客户端上: Alison是对的 - 如果要在客户端上打开RadWindow(并且没有连接到该回发元素的服务器端事件),则需要取消回发。这可以通过使用来完成 OnClientClick =“返回myFunction();”和“返回false; ”在函数本身的末尾(如Alison建议的那样),或者:

OnClientClick =“myFynction();返回false;”

取消客户端点击后,应该没有回发。

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