虽然当 RadScheduler 打开其编辑表单时有一个事件,称为 OnClientFormCreated,但当编辑表单关闭时没有一个事件。虽然有一些方法可以做到这一点,但你必须添加一些额外的代码。
当您考虑它时,有几个不同的项目可能导致表单关闭 - 用户可以单击窗口右上角(或左,取决于您的方向)的关闭图标,他们可以单击取消,或者他们可以点击保存。
记住这一点,我们可以查看this demo,它显示了正在运行的高级编辑表单,并且还为我们预先编写了一些 JavaScript。
在schedulerFormCreated() 函数中,我们可以执行以下操作:
function schedulerFormCreated(scheduler, eventArgs) {
// Create a client-side object only for the advanced templates
var mode = eventArgs.get_mode();
if (mode == Telerik.Web.UI.SchedulerFormMode.AdvancedInsert ||
mode == Telerik.Web.UI.SchedulerFormMode.AdvancedEdit) {
// Initialize the client-side object for the advanced form
var formElement = eventArgs.get_formElement();
var cancelButton = $("[id$='_CancelButton']");
cancelButton.on("click", formClosed);
var templateKey = scheduler.get_id() + "_" + mode;
....
然后我们有 formClosed 事件:
function formClosed(eventArgs) {
}
在 formClosed 中,您可以创建恢复计时器的逻辑,而在 schedulerFormCreated 中,您可以在 if 语句之后直接调用停止计时器的函数。
如果你想知道我们在这里做什么,我们只是简单地抓取一个 jQuery 对象的实例,它代表一个 id 以 _CancelButton 结尾的元素(我们对开始部分不感兴趣),然后就使用.on() jQuery 函数绑定到点击事件。
要获得保存按钮的实例,您只需使用_UpdateButton,关闭图标是_AdvancedEditCloseButton。请记住,将以这些子字符串结尾的 任何 元素将被选中,因此,如果您想更具体一些,我建议您使用 FireBug 或 Chrome 开发工具检查高级表单的元素以获取其 ID并将其插入上面的选择器中。
这应该可以让您获得所需的功能。