RadWindow Standardis - PullRequest
       3

RadWindow Standardis

2 голосов
/ 17 мая 2011

Я пытаюсь разобраться в отношении RadWindow / RadWindowManager.Я вижу, что может быть много элементов управления RadWindowManager, определенных на одной странице (в отличие от RadScriptManager / ScriptManager, который требует одной реализации).Но я также вижу, что мы можем реализовать RadWindow либо внутри RadWindowManager, либо в качестве отдельного элемента управления.

В чем преимущества использования RadWindowManager по сравнению с возможностью применения настроек, определенных в диспетчере, к окну?Лучше ли держать RadWindowManager вне главной страницы и определять его там, где это необходимо, или лучше хранить глобальный radwindowmanager и иметь radwindow в качестве отдельного элемента управления?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 20 мая 2011

Я только что ответил на вашу ветку форума на форумах Telerik, но для удобства я добавляю свой ответ ниже, как дополнение к ответу Кевина.

По сути, идея RadWindowManager заключается в том, чтобы позволить пользователям создавать на клиенте несколько RadWindows с предопределенными свойствами, установленными в менеджере.Клиентский API-интерфейс менеджера позволяет разработчику легко получить ссылку на такие RadWindows и работать с ними.Однако при использовании RadWindowManager необходимо учитывать несколько моментов.

1 .. Если у вас несколько RadWindowManager на одной странице:

 All RadWindowManager's functions (radopen, radalert, radconfirm, radprompt, GetRadWindowManager, etc) are always using the first rendered RadWindowManager on the page.
 Every RadWindowManager "knows" only the RadWindows that are declared in its Windows collection.

Это означает, чтоесли у вас есть RadWindow2 в качестве отдельного элемента управления ИЛИ, объявленного в RadWindowManager2, и вы используете что-то вроде radopen (myUrl, "RadWindow2"); radopen будет использовать RadWindowManager1 и откроет новое RadWindow с параметрами, взятыми из RadWindowManager1.Чтобы избежать этой проблемы, когда у вас есть несколько менеджеров на странице, вам нужно сначала получить ссылку на правильный RadWindowManager, а затем вызвать его методы.например, var manager = $ find ("<% = RadWindowManager2.ClientID%>");manager.open (myUrl, "RadWindow2");

2 .. RadWindowManager не может управлять автономными элементами управления RadWindow - они являются отдельными элементами управления и не зависят от настроек менеджера.

2 голосов
/ 17 мая 2011

Использование RadWindowManager - это просто удобный способ объявления общих свойств для нескольких окон на вашей странице. Вы можете объявить несколько элементов управления RadWindow в RadWindowManager, а затем получить доступ к коллекции окон с помощью следующих функций:

var windowManager = $find('<%= MyRadWindowManager.ClientID %>'),
    windows = windowManager.get_windows(),
    wnd,
    i = 0;
for (; i < windows.length; i++) {
    wnd = windows[i];
    // do something with the RadWindow object
}

Будьте осторожны, чтобы не называть переменную RadWindow «окном», так как это будет конфликтовать с глобальным window объектом.

Если вы хотите определенный объект RadWindow, вы можете использовать следующий код:

var windowManager = $find('<%= MyRadWindowManager.ClientID %>'),
    wnd = windowManager.getWindowByName("MyWindow");
// do something with the RadWindow object

Или, что я предпочитаю, так это определить один RadWindowManager на моей главной странице без заданных окон, а затем просто использовать его для динамического открытия окон по мере необходимости. Вот пример:

<telerik:RadWindowManager ID="MasterWindowManager" runat="server" 
    VisibleOnPageLoad="false"
    VisibleStatusbar="false" 
    Behaviors="Close, Move" 
    DestroyOnClose="true" >
</telerik:RadWindowManager>

Определение RadWindowManager на вашей странице добавит функцию radopen к глобальному объекту window. Вы можете использовать его для динамического открытия новых RadWindows по мере необходимости ...

var showCustomerDetails = function (customerId) {
    var url = String.format("/Views/CustomerDetails.aspx?cid={0}", customerId),
        wnd = window.radopen(url);
    wnd.set_modal(true);
    wnd.setSize(600, 400);
    wnd.show();
    wnd.center();
}

Надеюсь, это поможет.

...