我有一个Kendo窗口,其定义如下:
With Html.Kendo().Window().Name("tranferwindow")
.Title("Select Transfer Destination")
.Content("")
.Resizable()
.Modal(True)
.Events(Function(events) events.Open("WindowToCenter"))
.Events(Function(events) events.Refresh("transferopen"))
.Draggable()
.Width(400)
.Visible(False)
.Render()
End With
每次使用刷新并传递新URL时,窗口都会打开。这是为了允许根据用户点击网格的内容显示动态数据。
function transferitem(e) {
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wwindow.data("kendoWindow").open(); //Display waiting window while refresh happens
var twindow = $("#tranferwindow")
twindow.data("kendoWindow").refresh('/Home/TransferList?agentid=' + agentid + '&tenantid=' + tenantid + '&SessionID=' + dataItem.MediaID);
}
在刷新事件结束时打开窗口,以确保用户看不到以前的内容。
function transferopen() {
wwindow.data("kendoWindow").close(); //Close the 'wait' window
var twindow = $("#tranferwindow")
twindow.data("kendoWindow").center().open();
}
这一切都运作良好,窗口可以随意关闭和重新打开。
但是,我需要从Partial View中访问窗口的resize事件,以调整窗口内的Grid的大小。为此,我将以下内容添加到从url返回的局部视图中。
$("#tranferwindow").kendoWindow({
resize: function (e) {
// resizeGrid();
}
});
添加此事件映射会导致无法多次打开Window的问题。 我假设我需要在结束之前以某种方式“取消注册”该事件?
答案 0 :(得分:2)
找到了解决方案:更清洁,无需VB Razor:)
每次我想显示一个窗口时,我都改变了创建新窗口的方法。
我创建了一个div来保存Window。
<div id="windowcontainer"></div>
然后当用户在网格上选择一个命令时,我创建整个窗口,将其附加到div。这里的关键是去激活事件中的this.destroy。
function transferitem(e) {
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
$("#windowcontainer").append("<div id='tranferwindow'></div>");
var mywindow = $("#tranferwindow")
.kendoWindow({
width: "400px",
title: "Select Transfer Destination",
visible: false,
content: '/Home/TransferList?agentid=' + agentid + '&tenantid=' + tenantid + '&SessionID=' + dataItem.MediaID,
deactivate: function () {
this.destroy();
},
open: WindowToCenter,
refresh:transferopen
}).data("kendoWindow");
mywindow.refresh();
}
然后在刷新功能
上 function transferopen() {
var twindow = $("#tranferwindow")
twindow.data("kendoWindow").center().open();
}
现在我可以将部分视图中的事件绑定工作正常,并且可以根据需要重新打开窗口。 :)
更新:在部分视图中添加事件绑定会停止&#39;模态&#39;从工作。努力解决这个问题......