0

私は動作しようとしている KendoGrid/詳細設定を持っています。グリッド内のボタンをクリックすると、編集を行って保存するポップアップ ウィンドウが開きます。ウィンドウが開き、テンプレートがデータを取得していますが、[更新] リンクに接続した「クリック」イベントが機能しません。インターウェブを見ていると、フォーム内でポップアップ(JQuery)が開かない問題があるのですが、KendoWindowなので「form.append」の付け方がわかりません(私は両方に新しい)。

<!--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");
    });
}

少し背景を追加するために、私は問題を調査しています。Telerik のサイト [ http://docs.telerik.com/kendo-ui/getting-started/web/window/overview]の KG ページを見ると、[ .data("kendoWindow")]. 私はこのコードを見てきました。デモでは機能しますが、私のページでは機能しません。テンプレートを使用していて、リンクの ID が「.wrapper.find」メソッドで見つけられるものではないため、ページで失敗していると思います。また、このページでは、「.appendto」を使用してそれ (kendoWindow) を現在のフォームにアタッチすることも提案しています。これは私も行っています。

次のコードを使用して、リンク クリックに接続し、ポップアップ ウィンドウのフォーム フィールドから値を取得できます

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;
});

JQuery から ASP.net ボタンをクリックすると問題が発生します。クリック イベントが発生し、Visual Studio デバッガーでキャッチできます。その場合、JQuery ポップアップ ウィンドウで変更されたフィールドの値は ASP.net には表示されませんが、JQuery ポップアップ ウィンドウの外部で変更されたフィールドの値は表示されます。

4

1 に答える 1

0

やり方が間違っていたので更新されませんでした。KendoGrid コントロールには、「編集」、「更新」、「破棄」などのコマンドを追加する機能が付属しています。これらを使用して、ユーザーがグリッドに表示するものを自動的に更新するマネージド ボタンをアタッチできます。データベースで更新するには、save イベントにメソッドをアタッチする必要がありますが、私がしようとしていたよりもはるかに簡単でした。

于 2014-04-22T01:28:29.563 に答える