【问题标题】:open child window in telerik radwindow在 Telerik radwindow 中打开子窗口
【发布时间】:2012-01-11 17:20:43
【问题描述】:

我想在 Telerik:RadWindow 中使用客户端脚本打开一个子 RadWindow,我使用了“radopen”,它显示了一个窗口,但与我配置的属性和 url 不完全相同。 我的 Parent RadWindow 存在于 UserControl 中的另一件事

这是我的代码:

<telerik:RadWindowManager ID="RadWindowManagerCustomValue" Style="overflow: hidden"
    ShowContentDuringLoad="false" VisibleStatusbar="false" ReloadOnShow="True" IconUrl=""
    DestroyOnClose="true" Modal="true" Height="390" Width="600" runat="server" OnClientClose="closeRadWindow"
    EnableShadow="true" Title="Add/Edit Agreement Type">
    <Windows>
        <telerik:RadWindow ID="AddCompanyDialog" ShowContentDuringLoad="false" runat="server"
            Title="Add Company" InitialBehaviors="Maximize" Behaviors="Close" NavigateUrl="somePage.aspx" />
    </Windows>
</telerik:RadWindowManager>



            function LoadCompanyPopup(sender, args) {

                radopen(null, "AddCompanyDialog");
            }

【问题讨论】:

    标签: asp.net telerik radwindow


    【解决方案1】:

    实际上使用 JavaScript 是使用 Telerik 的 RadWindow 的方式。它仅在客户端呈现,因此在服务器上使用它通常由injecting scripts 完成。从服务器打开看this thread

    在原始海报 - 看看这些文章 - opening a RadWindow from within a RadWindow 正确打开第二个 RadWindow(因此它不限于第一个)和 using multiple managers 在你得到的错误 URL 上 - 很可能你有在您调用 radopen() 的上下文中,页面上有多个 RadWindowManager。

    【讨论】:

      【解决方案2】:

      使用这个简单的 Javascript 代码打开窗口:

      function LoadCompanyPopup()
      { var myWindow=window.radopen(null, "AddCompanyDialog"); }
      

      另外,在您的 telerik:RadWindow 标签上,将您的 NavigateUrl 属性值从“somePage.aspx”更改为“./somePage.aspx”(以确保找到您的 aspx 页面的路径)。

      【讨论】:

        【解决方案3】:

        我的记忆有点模糊,因为我已经有几个月没有搞乱 Telerik 控件了......但是有些事情告诉我很难/不可能使用 javascript 在窗口中打开一个窗口。

        我为这个场景编写的代码使用 .NET 代码隐藏打开了窗口

        radWindow.VisibleOnPageLoad = True
        

        在按钮的onClick 事件上

        编辑:

        我错了!正如 rdmptn 在下面指出的那样。我用于在窗口内打开窗口的示例 javascript 代码:

            function closeWin() {
                GetRadWindow().close();
            }
        
            function GetRadWindow() {
                var oWindow = null; if (window.radWindow)
                    oWindow = window.radWindow; else if (window.frameElement.radWindow)
                    oWindow = window.frameElement.radWindow; return oWindow;
               }
        
            function ConfirmResult(sender, args) {
                var ajaxManager = $find("radAjaxManager");
                ajaxManager.ajaxRequest(args._argument);
        
                if (args._argument == "confirm")
                    closeWin();
            }
        
            function OpenConfirmDialog() {
                var window = GetRadWindow().get_windowManager().getWindowByName("DeleteConfirmPopup");
                window.show();
                window.add_close(ConfirmResult);
                setTimeout(function () { window.set_modal(true); }, 0);
            }
        

        【讨论】:

        • 这根本不正确,同样使用代码隐藏将允许您仅访问在第一个 RadWindow 中加载的页面中声明的 RadWindow。当你需要在这个页面之外打开它时,你需要使用 JavaScript 通过框架树访问父页面。
        • 啊哈……我确实弄错了。我看我的项目太快了。它确实使用 javascript 并且它是处理在窗口中打开窗口的处理程序。在评估 Telerik 时,我还与其他库搞混了,所以很可能误会了我对其他产品的一些抱怨。
        猜你喜欢
        • 2011-08-26
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多