【问题标题】:How to close a RadWindow not usting the default "X"?如何关闭不使用默认“X”的 RadWindow?
【发布时间】:2014-02-14 10:26:20
【问题描述】:

我有一个 RadWindow 如下:

<telerik:RadWindow ID="PIQRadWindow" Modal="true" runat="server" Skin="Default" Behaviors="Close,Move" CssClass="RadWindowCustomClass" VisibleStatusbar="false" width="400px" OnClientClose="RadWindowClose">
    <ContentTemplate>
    <pd:uc_PopupDropdown ID="pdPIQScore" enableviewstate="False" Draggable="true" isInternal="true" ISOC="ProjectInstructionQuality" DivContent = "pdPIQScore" ScriptPrefix = "OFS_" runat="server" />  
    </ContentTemplate>     
    </telerik:RadWindow>

我希望它在我定义的 onclick 事件中关闭。我尝试使用

   function getRadWindow() {
      var oWindow = null;
      if (window.radWindow) oWindow = window.radWindow;
      else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
      return oWindow;
   }

   function clientClose() {   
      getRadWindow().close();
   }

但这对我不起作用。错误消息:“window.frameElement 为空”。

有人有想法吗?

【问题讨论】:

  • 最后我发现我仍然可以使用 $find("").close() 来关闭它。不一定要这么复杂。

标签: javascript telerik radwindow


【解决方案1】:

使用 ContentTemplate 时必须使用 $find()。您可以在全局 JS 变量中保留引用(您可以在 Sys.Application.Load 中填充变量),或者创建将打开和关闭对话框并在需要时调用它们的函数。查看此演示的代码:http://demos.telerik.com/aspnet-ajax/window/examples/contenttemplatevsnavigateurl/defaultcs.aspx

【讨论】:

    【解决方案2】:

    你看过这篇文章了吗?如果是这样,请分享更多您的代码,以便我们可以确切地看到发生了什么。 How to close the radwindow on serverside and refresh the parent page

    【讨论】:

    • 是的,它们都使用类似的 getRadWindow() 函数。但是我从这个函数中得到了错误:window.frameElement is null.
    • 你能通过名字后面的代码访问窗口吗?
    • 您的控件列出了“RadWindowClose”,但您的函数显示为 clientClose()
    • @Rickjames 不,我无法访问“uc_PopupDropdown”中的窗口。哦,也许这就是原因。那么你知道我怎样才能让它以这种方式工作吗?我的意思是,继续在 contenttemplate 中使用 uc_PopupDropdown。谢谢!
    猜你喜欢
    • 2012-02-09
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2011-10-01
    • 2020-07-07
    相关资源
    最近更新 更多