Почему мои всплывающие окна 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 поставляется с возможностью присоединения таких команд, как "изменить", "обновить" и "уничтожить". С их помощью можно прикрепить управляемые кнопки, которые будут автоматически обновлять то, что видит пользователь в сетке. Вам все еще нужно прикрепить методы к событию сохранения, чтобы обновить его в базе данных, но это было намного проще, чем то, что я пытался сделать.

Другие вопросы по тегам