Почему мои всплывающие окна JQuery (Kendo) не обновляют элементы управления формы?
У меня есть настройка KendoGrid/details, которую я пытаюсь заставить работать. Кнопка в сетке открывает всплывающее окно, в котором вносятся и сохраняются изменения. Открывается окно, и шаблон получает данные, но событие "щелчка", которое я связал со ссылкой [Обновить], не работает. Оглядываясь на веб-сайты, я вижу, что есть проблема с тем, что всплывающее окно (JQuery) не открывается внутри формы, но я не знаю, как прикрепить к нему "form.append", так как это KendoWindow (я новый для обоих).
<!--Update Link code (in the KendoTemplate)-->
<div><A href="#" ID="lnkUpdate_0858">Update</A></div>
/*Popup code*/
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
/*Code to wire up the onClick event to the "update" link*/
function lnkUpdate_0858_OnClick() {
return $("#lnkUpdate_0858").click(function() {
alert("lnkUpdate_0858_OnClick");
});
}
Чтобы добавить немного фона, я исследую проблему. Глядя на страницу KG на сайте Telerik [ http://docs.telerik.com/kendo-ui/getting-started/web/window/overview%5D, я вижу, что должен иметь возможность добавить пользовательский клик к [.data("kendoWindow")]. Я взглянул на этот код. Хотя это работает для демо, это не для моей страницы. Я думаю, что это сбой на моей странице, потому что я использую шаблон, и идентификатор ссылки не является чем-то, что метод ".wrapper.find" может найти. Кроме того, на странице предлагается использовать ".appendto", чтобы прикрепить его (окно kendo) к текущей форме, что я также сделал.
Я могу подключиться к ссылке, нажав, и получить значения из полей формы во всплывающем окне, используя следующий код.
function ClickButton(ButtonID) {
var x = $("[id$='tbAlertID']").val;
$("[id$='" + ButtonID + "']").click();
}
function PopulateASPDotNetForm() {
$("[id$='tbAlertID']").val(tbAlertID);
ClickButton("btnUpdateAlert2");
alert("PopulateASPDotNetForm" + tbAlertID);
}
function LoadDataFromPopupForm(PopupForm) {
tbAlertID = PopupForm.find('.tbAlertID').val();
}
$(document).on('mousedown', ".LinkButton", function() {
PopupForm = $(this).parent().parent();
LoadDataFromPopupForm(PopupForm);
PopulateASPDotNetForm();
return;
});
Я столкнулся с проблемой с нажатием кнопки ASP.net из JQuery. Событие click срабатывает, и я могу поймать его в отладчике Visual Studio. Когда я это делаю, значения полей, измененных во всплывающем окне JQuery, не видны ASP.net, но значения полей, измененных вне всплывающего окна JQuery, видны.
1 ответ
Это не будет обновляться, потому что я делаю это неправильно. Элемент управления KendoGrid поставляется с возможностью присоединения таких команд, как "изменить", "обновить" и "уничтожить". С их помощью можно прикрепить управляемые кнопки, которые будут автоматически обновлять то, что видит пользователь в сетке. Вам все еще нужно прикрепить методы к событию сохранения, чтобы обновить его в базе данных, но это было намного проще, чем то, что я пытался сделать.