首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RadWindow标准化

RadWindow标准化
EN

Stack Overflow用户
提问于 2011-05-17 20:54:27
回答 2查看 2.3K关注 0票数 2

我正在尝试理解RadWindow/RadWindowManager之间的关系。我看到在一个页面中可以定义多个RadWindowManager控件(不像RadScriptManager/ScriptManager需要一个实现)。但我也看到,我们可以在RadWindowManager内部实现RadWindow,也可以将其作为独立控件来实现。

除了能够将管理器上定义的设置应用到窗口之外,使用RadWindowManager还有什么优势?将radwindowmanager放在母版页之外并在需要的地方定义它是更好,还是保留一个全局的radwindow管理器并将其作为独立控件更好?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-18 00:14:38

使用RadWindowManager只是在页面上声明多个窗口的公共属性的一种方便方法。您可以在RadWindowManager中声明多个RadWindow控件,然后通过以下函数访问窗口集合:

代码语言:javascript
复制
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对象,可以使用以下代码:

代码语言:javascript
复制
var windowManager = $find('<%= MyRadWindowManager.ClientID %>'),
    wnd = windowManager.getWindowByName("MyWindow");
// do something with the RadWindow object

或者,我更喜欢在我的母版页中定义一个RadWindowManager,没有定义任何窗口,然后简单地使用它来根据需要动态打开窗口。下面是一个例子:

代码语言:javascript
复制
<telerik:RadWindowManager ID="MasterWindowManager" runat="server" 
    VisibleOnPageLoad="false"
    VisibleStatusbar="false" 
    Behaviors="Close, Move" 
    DestroyOnClose="true" >
</telerik:RadWindowManager>

在页面上定义RadWindowManager将向全局window对象添加一个radopen函数。您可以使用它来根据需要动态打开新的RadWindows ...

代码语言:javascript
复制
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();
}

我希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-05-20 17:57:02

我刚刚在Telerik的论坛上回复了你的论坛帖子,但为了方便起见,我将我的回复粘贴在下面,作为对Kevin回复的补充。

基本上,RadWindowManager背后的思想是允许用户在客户端创建多个具有在管理器中设置的预定义属性的RadWindows。该管理器的客户端应用程序接口允许开发人员轻松地获取对这些RadWindows的引用并使用它们进行操作。然而,在使用RadWindowManager时,有几件事应该牢记在心。

1..如果在同一页面上有多个RadWindowManagers:

代码语言:javascript
复制
 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,并将使用从RadWindowManager1获取的设置打开一个新的RadWindow。为了避免这个问题,当页面上有多个管理器时,您需要首先获取对正确RadWindowManager的引用,然后调用它的方法。例如var manager = $find("<%= RadWindowManager2.ClientID %>");manager.open(myUrl,"RadWindow2");

2..独立的RadWindow控件不能由RadWindowManager控制-它们是单独的控件,不受管理员设置的影响。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6031053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档