1

Jquery Mobile を使用してダイアログを開いています。問題は、btnSend_Clickイベントが発生していないことです。ボタンとテキストボックスを更新パネルに保持し、サーバー側のコードを台無しにした後、ポストバックしてダイアログを閉じようとしています。

サンプルはこちら

親ページ ボタン HTML

<a href="/Kiosk/RetrieveTickets/RetrieveTicketsBySms.aspx" data-role="button" data-inline="true" data-theme="c" class="MyBigButton"
                        data-inline="true" data-rel="dialog" data-transition="pop">Via SMS
                        <br />
                        <br />
                        <img src="/Kiosk/images/mobile.png" />
                    </a>

ダイアログページの HTML

  <div id="dlgSms" data-role="dialog" data-theme="b">
        <div data-role="header" data-theme="d">
            <h1>
                Retrieve Tickets By SMS</h1>
        </div>
        <div data-role="content" data-theme="c">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <p>
                        Please type here your mobile number. You will get your ticket on your mobile via
                        SMS.</p>
                    <asp:TextBox runat="server" ID="txtMobileNumber" placeholder="Enter Mobile Number" />
                    <asp:Button ID="btnSend" Text="Send SMS Now" runat="server" data-theme="b" OnClick="btnSend_Click" />
                </ContentTemplate>
            </asp:UpdatePanel>
            <a href="#" data-role="button" data-rel="back" data-theme="c">Cancel</a>
        </div>
    </div>
4

1 に答える 1

1

ここで主な問題について説明します。

[SMS経由]ボタンをクリックするとダイアログが開き、スクリプトは1つの異なるaspxページをロードし、それを前のDOMにレンダリングしRetrieveTicketsBySms.aspxますつまり、ボタンと更新パネル、およびのスクリプトはRetrieveTicketsBySms.aspx履歴になります。

したがって、ボタンは起動しますが、RetrieveTicketsOptions.aspxページを呼び出します。これは、ボタンがないだけでなく、ハッシュ検証も失敗するため、起動されません。更新パネル内にもあるので、私が見たところ、投稿を返すことすらありません。

ここで考えられる解決策は、ダイアログのコンテンツを配置するRetrieveTicketsBySms.aspxことです。これが可能な場合は、iframe内に読み込まれます。UpdatePanelを削除します。

于 2012-09-23T09:21:28.020 に答える