面向ASP的Telerik UI。净AJAX免费下载30天试用版

事件概述

RadWindow控件提供了许多客户端事件,您可以将这些事件与其控件一起使用客户端API控制它的行为。这些事件是通过许多属性设置的,这些属性的值是在特定客户端事件发生时执行的JavaScript函数的名称。下面列出了可用的事件。你也可以使用JavaScript动态地添加和删除事件处理程序

当JavaScript函数被调用时,它被提供了两个参数:发送者(即,触发事件的RadWindow实例)和一个事件参数对象(取决于事件,它可能包含也可能不包含方法)。

  • OnClientActivate-当窗口变为活动窗口时调用。
  • OnClientAutoSizeEnd-当RadWindow的自动缩放完成时触发。
  • OnClientBeforeClose-在RadWindow被关闭之前调用。可以通过事件参数对象的set_cancel(shouldCancel)方法来取消关闭。
  • OnClientBeforeShow-在RadWindow显示之前触发。您可以在那里取消RadWindow的显示。
  • OnClientClose-窗口关闭后调用。如果一个参数在从JavaScript调用时被传递给close()方法,你可以通过事件参数对象的get_argument()方法获得这个对象。当从内容页关闭RadWindow时,在对话框场景中非常有用。
  • OnClientCommand-在执行Pin, Reload, Minimize和Maximize命令时触发(当用户按下标题栏按钮时)。它的事件参数对象提供get_commandName()方法,该方法返回刚刚触发的命令的名称。也可以通过set_cancel (shouldCancel)方法。
  • OnClientDragEnd-在拖动操作结束后调用。
  • OnClientDragStart-当用户开始拖动窗口时调用。
  • OnClientPageLoad-当内容窗口中的页面完成加载时调用。
  • OnClientResize-当RadWindow被调整大小时触发
  • OnClientResizeEnd-在调整大小操作结束后调用。
  • OnClientResizeStart-当用户开始调整窗口大小时调用。
  • OnClientShow-在窗口显示后调用。

客户端事件将在RadWindow标记所在的页面中引发,而不管启动其打开的窗口对象是什么。如果你是从一个RadWindow中打开一个RadWindow第二个对话框的事件可以直接在父页面中使用,而不是在第一个对话框中。因此,不应该在第一个对话框的上下文中动态添加事件处理程序。

例子

下面的示例说明了客户端事件是如何工作的。

  1. 拖一个RadWindowManager对象从工具箱中移到窗体上。

  2. 使用窗户属性带来的RadWindow收集编辑器

  3. 添加两个RadWindow对象,给他们ID“RadWindow1”和“RadWindow2”的值。然后单击Ok关闭编辑器。

  4. 转到源视图,并将以下代码添加到页面的标记中:

    JavaScript

    /********************************************************** 窗口事件  **********************************************************/ eventArgs函数OnClientCommand(发送方){logEvent(“< >强OnClientCommand < / >强:命令”+ eventArgs.get_commandName ());}函数OnClientResizeEnd(sender, eventArgs) {logEvent("OnClientResizeEnd: RadWindow is resize ended");}函数OnClientResizeStart(sender, eventArgs) {logEvent("OnClientResizeEnd: RadWindow is resize started");}函数OnClientDragStart(sender, eventArgs) {logEvent("OnClientDragStart: RadWindow拖动开始");}函数OnClientDragEnd(sender, eventArgs) {logEvent("OnClientDragEnd: RadWindow拖动结束");}函数OnClientPageLoad(sender, eventArgs) {logEvent("OnClientPageLoad: RadWindow完成页面加载");}函数OnClientActivate(sender, eventArgs) {//LogEvent("OnClientActivate: RadWindow被激活");}函数OnClientBeforeClose(sender, eventArgs) {logEvent("OnClientBeforeClose: RadWindow正在关闭");}函数OnClientclose(sender, eventArgs) {$get("Button1")。Disabled = false;var arg = eventArgs.get_argument(); if (arg) { radalert("A custom argument was passed. Its value is: " + arg); logEvent("OnClientClose: The RadWindow is closed with an argument. The provided argument is: " + arg); } else { logEvent("OnClientClose: RadWindow is closed"); } } function OnClientshow(sender, eventArgs) { $get("Button1").disabled = true; logEvent("OnClientShow: RadWindow is shown."); } function OnClientBeforeShow(sender, eventArgs) { logEvent("OnClientBeforeShow: RadWindow is showing."); } function OnClientAutoSizeEnd(sender, eventArgs) { logEvent("OnClientAutoSizeEnd: RadWindow is autosized."); } /********************************************************** Helper **********************************************************/ function LogEvent(eventString) { var d = new Date(); var dateStr = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + "." + d.getMilliseconds(); document.getElementById("eventConsole").innerHTML = "[" + dateStr + "] " + eventString + "
    " + document.getElementById("eventConsole").innerHTML; }

    这个标记首先定义了一些JavaScript函数:一个名为LogEvent的辅助函数,它将事件信息写入到< div >元素(在上面的示例中,它的ID是“eventConsole”)和一组12个事件处理程序(OnClientResize将淹没控制台,这就是我们省略它的原因),每个处理程序都有两个参数,并调用LogEvent来显示有关事件的信息。后< >脚本节中,标记向页面添加两个用于打开窗口的链接,以及一个< div >控件写入的信息LogEvent函数。

  5. 选择RadWindowManager对象,并设置以下属性:

    • 设置OnClientCommand属性设置为“OnClientCommand”。
    • 设置OnClientResizeStart属性设置为“OnClientResizeStart”。
    • 设置OnClientResizeEnd属性为“OnClientResizeEnd”。
    • 设置OnClientAutoSizeEnd属性设置为“OnClientAutoSizeEnd”。
    • 设置OnClientDragStart属性设置为“OnClientDragStart”。
    • 设置OnClientDragEnd属性设置为“OnClientDragEnd”。
    • 设置OnClientActivate属性设置为“OnClientActivate”。
    • 设置OnClientPageLoad属性设置为“OnClientPageLoad”。
    • 设置OnClientBeforeClose属性设置为“OnClientBeforeClose”。
    • 设置OnClientClose属性设置为“OnClientClose”。
    • 设置OnClientShow属性设置为“OnCLientShow”。
    • 设置OnClientBeforeShow属性设置为OnClientBeforeShow。
  6. 再次打开RadWindow收集编辑器,并设置OpenerElementId将RadWindow1属性设置为“link1”OpenerElementId将RadWindow2属性设置为link2。

  7. 运行应用程序。玩窗口,点击链接打开它们,拖动它们,调整它们的大小,最小化,最大化或固定它们等:

另请参阅

在本文中
Baidu
map