jQueryダイアログボックスでhtmlページを開くことに成功しました。'vendorid'というデータも渡しましたが、開いたhtmlページで取得する方法がわかりません。
$('#btnShowSupplierStats').click(function () {
showUrlInDialog('../supplierstats.htm?vendorId=' + $(this).attr('vendorId')); return false;
//showUrlInDialog('../Default2.aspx'); return false;
});
function showUrlInDialog(url) {
var vid = $(this).attr('vendorId')
var tag = $("<div id='statsDiv' vid ='"+ vid +"'></div>");
$.ajax({
url: url,
success: function (data) {
tag.html(data).dialog({ show: "fadein", hide: "fadeout",
modal: true, minHeight: 550, minWidth: 800, autoOpen: false,
close: function (event, ui) { $(this).remove(); }, buttons: [{
text: "Close", click: function () { $(this).dialog('close');
return false; } }] }).data("vendorid", vid).dialog('open');
return false;
}
});
}
更新:Farrukhからの回答はこの仕事をします(つまり、私は100%クライアント側のアプローチを使用しているので、彼が言及した2番目のオプションです)。しかし、私は渡されるデータを隠しフィールドに保存しませんでした。代わりに、常に機能する次のアプローチを使用しました。
jQueryでダイアログを開こうとしているときは、その直前に、ダイアログのオープナーであるボタンの属性を設定します。私の場合、このボタンに「vendorid」という属性を設定しました。オープナーボタンのIDが「btnOpenVendorDialog」であるとしましょう。したがって、次のコードを使用する必要があります。
$('#btnOpenVendorDialog')。attr('vendorid'、'Vendor1234'); //ここでダイアログを開きます...。
2.次に、ダイアログウィンドウで開くhtmlページで、この属性を問題なく簡単に取得できます。
var vid = $('#btnOpenVendorDialog').attr('vendorid');
それでおしまい。この渡されたデータを使用して、やりたいことをすべて実行する準備が整いました。