1

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番目のオプションです)。しかし、私は渡されるデータを隠しフィールドに保存しませんでした。代わりに、常に機能する次のアプローチを使用しました。

  1. jQueryでダイアログを開こうとしているときは、その直前に、ダイアログのオープナーであるボタンの属性を設定します。私の場合、このボタンに「vendorid」という属性を設定しました。オープナーボタンのIDが「btnOpenVendorDialog」であるとしましょう。したがって、次のコードを使用する必要があります。

    $('#btnOpenVendorDialog')。attr('vendorid'、'Vendor1234'); //ここでダイアログを開きます...。

2.次に、ダイアログウィンドウで開くhtmlページで、この属性を問題なく簡単に取得できます。

var vid = $('#btnOpenVendorDialog').attr('vendorid');

それでおしまい。この渡されたデータを使用して、やりたいことをすべて実行する準備が整いました。

4

1 に答える 1

1

これを行うには2つの方法があります。

  1. サーバー側を使用して、postまたはget(ベンダーIDがgetの場合)で渡されたデータを取得し、それを使用して、使用可能な要素の非表示要素またはdata-vendorID属性を設定します。
  2. javascriptを使用している場合は、成功関数の後にvidとして渡したデータvendorIDを使用できるため、非表示の入力フィールドとして配置するか、他のDOM要素の1つにdata-vendor-idとして配置し、そこからアクセスします。 。
于 2012-11-09T01:13:33.957 に答える