【问题标题】:RadWindow: Opening windows from C#RadWindow:从 C# 打开窗口
【发布时间】:2011-08-26 13:41:01
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

  • 按钮是否应该引起回发?

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


【解决方案1】:

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

希望对某人有用。

【讨论】:

    【解决方案2】:

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

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

    OnClientClick="myFynction(); return false;"

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

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

    【讨论】:

      【解决方案3】:

      点击按钮后需要返回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;
      }
      

      【讨论】:

      • 感谢您的回复!我试图以其他几种方式阻止该帖子,我只是尝试了您的建议。窗口仍然出现,然后立即消失......还有其他想法吗?如果这有什么不同,我正在使用 rad 按钮控件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多