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% 客户端方法)。但是我没有将要传递的数据存储在隐藏字段中。相反,我使用了以下方法,它也始终有效:

  1. 当你要通过 jQuery 打开对话框时,在此之前,设置作为对话框打开器的按钮的属性。就我而言,我在此按钮上设置了一个名为“供应商”的属性。假设开启按钮的 id 是“btnOpenVendorDialog”。所以需要使用下面的代码。

    $('#btnOpenVendorDialog').attr('vendorid', 'Vendor1234'); //在这里打开你的对话框....

2.然后,在对话框窗口中打开的html页面中,我可以轻松地检索此属性而没有任何问题。

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

而已。你已经准备好用这个传递的数据做任何你想做的事情了。

4

1 回答 1

1

有两种方法可以做到这一点:

  1. 使用服务器端并在 post 或 get 中获取传递的数据(在您的情况下,供应商 ID 是 get)并使用它来填充任何可用元素的隐藏元素或 data-vendorID 属性。
  2. 如果您使用的是 javascript,那么您作为 vid 传递的数据 vendorID 在成功函数后可用,因此将其作为隐藏输入字段放置或将其作为数据供应商 ID 放置在其他 DOM 元素之一上并从那里访问它.
于 2012-11-09T01:13:33.957 回答