2012-01-11 91 views
0

我想打開一個帶有客戶端腳本的telerik:RadWindow中的RadWindow,我使用了「radopen」,它顯示一個窗口,但不完全具有與我配置相同的屬性和url。 還有一件事我父母RadWindow是存在於一個用戶控件在telerik radwindow中打開子窗口

這是我的代碼:

<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"); 
      } 

回答

-1

我的記憶有點模糊,因爲它已經有幾個月,因爲我曾與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); 
    } 
+0

這簡直是不正確的,同樣使用代碼隱藏將允許您只訪問在第一個RadWindow中加載的頁面中聲明的RadWindow。當您需要在此頁面之外打開它時,您需要使用JavaScript通過框架樹訪問父頁面。 – rdmptn 2012-01-13 12:07:25

+0

啊哈......的確我錯了。我看着我的項目方式太快了。它確實使用JavaScript和它的處理程序來處理在Windows中打開窗口。 在評估Telerik時,我還在與其他庫一起搞亂,所以很可能會誤以爲我和其他產品有一些抱怨。 – Zhais 2012-01-17 17:12:45

1

實際上,使用JavaScript是使用Telerik的RadWindow的方式。它僅在客戶端呈現,因此在服務器上使用它通常由injecting scripts完成。在this thread從服務器

打開它在原來的海報看看 - 看看這些文章 - opening a RadWindow from within a RadWindow上正常打開第二RadWindow(所以沒有在第一限制),並在using multiple managers上錯你得到的URL - 很可能你在頁面上有多個RadWindowManager,在這個頁面中你調用了radopen()。

0

使用這個簡單的Javascript代碼在打開的窗口:

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

此外,您Telerik的:RadWindow標籤,改變你的NavigateUrl從 「SomePage.aspx頁面」 到 「./somePage.aspx」(屬性值以確保您的aspx頁面的路徑位於)。