Как закрыть RadWindow, не используя X по умолчанию?

У меня есть 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 имеет значение null».

У кого-нибудь есть идеи?


person Joyin    schedule 23.01.2014    source источник
comment
Наконец, я обнаружил, что все еще могу использовать $find(‹%=PIQRadWindow.ClientID%›).close(), чтобы закрыть его. Не обязательно так усложнять.   -  person Joyin    schedule 24.01.2014


Ответы (2)


Вы должны использовать $find() при использовании ContentTemplate. Вы можете либо сохранить ссылку в глобальной переменной JS (вы можете заполнить переменную в Sys.Application.Load), либо создать функции, которые будут открывать и закрывать диалоговое окно и вызывать их при необходимости. Проверьте код этой демонстрации: http://demos.telerik.com/aspnet-ajax/window/examples/contenttemplatevsnavigateurl/defaultcs.aspx.

person rdmptn    schedule 28.01.2014

Вы проверили этот пост? Если это так, пожалуйста, поделитесь своим кодом, чтобы мы могли точно увидеть, что происходит. Как закрыть окно radwindow на стороне сервера и обновить родительскую страницу

person Rick james    schedule 23.01.2014
comment
Да, все они используют аналогичную функцию getRadWindow(). Но я получил ошибку от этой функции: window.frameElement имеет значение null. - person Joyin; 23.01.2014
comment
Вы можете получить доступ к окну из кода по имени? - person Rick james; 23.01.2014
comment
Ваши контрольные списки RadWindowClose, но ваша функция говорит clientClose() - person ShellNinja; 23.01.2014
comment
@Rickjames Нет, я не могу получить доступ к окну в uc_PopupDropdown. О, может поэтому. Итак, вы знаете, как я могу заставить его работать таким образом? Я имею в виду, продолжайте использовать uc_PopupDropdown в шаблоне контента. СПАСИБО! - person Joyin; 23.01.2014