У меня есть окно Кендо, которое определяется следующим образом:
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();
}
Все это работает хорошо, и окно можно закрыть и снова открыть так часто, как мне нравится.
Однако мне нужно было получить доступ к событию изменения размера окна из частичного представления, чтобы изменить размер сетки, которая находится внутри окна. Для этого я добавил следующее к частичному представлению, возвращаемому из URL-адреса.
$("#tranferwindow").kendoWindow({
resize: function (e) {
// resizeGrid();
}
});
Добавление этого сопоставления событий вызывает проблему, из-за которой я не могу открыть окно более одного раза. Я предполагаю, что мне нужно как-то «отменить регистрацию» на мероприятие перед закрытием?