現在、ビューを使用してダイアログをロードする作業を行っています。このビューは、購入する製品の挿入と編集の両方を処理します。
私が遭遇している問題は、製品を保存するときに、ダイアログを閉じて、元のページにあったグリッドを更新する必要があることです。そうしようとすると、親でダイアログを見つけて閉じるイベントをトリガーしようとしています。これまでのところ、親でダイアログを見つけるのに効果がありませんでした。グリッドを見つけて強制的に更新することができました。
私の質問は、ダイアログ内から終了をトリガーする方法はありますか? ところで、これが問題の一部であるかどうかはわかりませんが、ダイアログに部分ビューではなく完全ビューを使用しています。
どんな助けでも大歓迎です。ありがとう。
敬具、 チャド
編集:これが私のコードです。
ビュー(親ページ)
...
<div id="divPOProduct">
</div>
<script type="text/javascript">
var selectedIds = [];
$(document).ready(function () {
$("#divPOProduct").dialog({
height: 500,
width: 700,
modal: true,
autoOpen: false,
draggable: false,
resizable: false,
open: function () { },
close: function (event, target) {
alert("Here");
return false;
}
});
//"Add" button
$("#add-poproduct").click(function (e) {
e.preventDefault();
var link = '@(Url.Action("POProductAddPopup", "PurchaseOrder", new { purchaseOrderId = Model.Id }))';
//OpenWindow(link, 600, 500, true);
$("#divPOProduct").load(link);
$("#divPOProduct").dialog("open");
return false;
});
...
表示 (ダイアログ)
$("#save").click(function (e) {
var validationTest = CheckValidation();
if (validationTest) {
var model = {
...
};
$.getJSON('@Url.Action("SavePurchaseOrderProduct", "PurchaseOrder")', model, function (result) {
if (result) {
//$(this).closest('.ui-dialog-content').dialog('close')
window.parent.$("divPOProduct").dialog("close");
//$(window.parent).find("divPOProduct").dialog("close");
}
});
return false;
}
});
});
結果の if ステートメントに表示される 3 つの試行は、これまでに試行したものです。親とdivを見つけることができますが、ダイアログは見つかりません。ところで、結果から返されるものはすべて真/偽です。