1

JqueryUIダイアログで遊んでいます。グリッドビュー、グリッドビューを更新するボタン、およびリンクを含むページがあります。リンクをクリックすると、レコードの詳細を示すダイアログウィンドウがポップアップ表示されます。

子ページで[保存]を押すと、親ページから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

そこで、グーグル検索の新しいラウンドを行うことにし、JQueryを呼び出してポストバックしないこのリンクHtmlボタンを見つけました

ボタンを次のように変更しました(UseSubmitBehaviorを追加しました)

そして今それは動作します。うまくいけば、私は人々の時間を無駄にしませんでした...

于 2012-05-10T12:07:27.557 に答える