私は動作しようとしている 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 ポップアップ ウィンドウの外部で変更されたフィールドの値は表示されます。