1

我正在玩 Jquery UI 对话框。我有一个带有gridview 的页面、一个刷新gridview 的按钮和一个链接。单击链接时,会弹出一个对话框窗口,其中包含记录的详细信息。

当我在子页面上按保存时,我让子页面从父页面调用 javascript 函数。在此函数中,它尝试执行按钮单击事件,但似乎不起作用。

如果您查看下面的 showThanks 函数,警报有效,按钮文本更改但按钮单击不起作用。

这可能是一项安全功能吗?两个页面现在都在同一页面上。

嗯有什么线索吗?

谢谢

编辑 - 如果您手动单击按钮,它会更改网格(在按钮事件处理程序中)。然而,jquery 似乎并没有进入按钮的事件处理程序,并且网格没有改变。

父页面html

<asp:GridView ID="gv" runat="server" />
<asp:Button ID="btnRefresh" runat="server" />
<a id="popoutUsers" href="popup.aspx?page=Bob" class="OpenNewLink">CLICK ME</a>
<script type="text/javascript">
    $(function () {
        $('.OpenNewLink').click(function () {

            var url = $(this).attr('href');
            var dialog = $('<div id="modal"></div>').appendTo('body')
            $('<iframe id="site" src="' + url + '" />').dialog({
                modal: true
                , close: function (event, ui) {
                    // remove div with all data and events
                    dialog.remove();
                }
            });

            return false;

        });

        showThanks = function () {
            alert("Thanks");
            var button = $("#btnRefresh");
            button.val("hello"); //This works
            button.click(); //Nothing seems to happen
            // button.trigger("click"); (Tried trigger as well but no luck)
        };

    });

</script>

子页面

<div>
    Why hello there
    <asp:Button ID="btnBob" runat="server" Text="click me" />
</div>
<script type="text/javascript">
    $(function () {
        $('#btnBob').click(function (e) {
            e.preventDefault();
            window.parent.showThanks();
            window.parent.$('.ui-dialog-content').filter(function () { return $(this).dialog('isOpen'); }).dialog('close');
            return false;
        });
    });
</script>
4

1 回答 1

1

于是决定做新一轮google搜索,发现这个链接Html Button调用JQuery,不回发

我将按钮更改为以下(添加了 UseSubmitBehavior)

现在它可以工作了。希望我没有浪费人们的时间...

于 2012-05-10T12:07:27.557 回答