Atlasの例に従います: ModalPopup の OkButton がクリックされたときに ModalPopup Extender を使用してポストバックを作成する (ASP.NET Ajax Control Toolkit に付属の ModalPopupExtender を使用します) が、ご覧のとおり、Sys .WebForms.PostBackAction() は、ASP.NET AJAX には存在しなくなりました (例は Atlas 用です)。実行すると、PostBackAction を作成する JavaScript の行で、「Microsoft JScript ランタイム エラー: オブジェクトが必要です」というエラー メッセージが表示されます。どうすればこれを ASP.NET AJAX で機能させることができますか、それとも別の方法がありますか? ありがとう
6 に答える
サーバー側のイベントは ModalPopupExtender で機能します。必要なことは、表示スタイルを none に設定したボタンを作成することです。次に、ModalPopupExtender の TargetControlID プロパティを隠しボタン ID に設定します。
<asp:Button ID="btnShowModal" runat="server" Text="Show" OnClick="btnShowModal_Click" />
<asp:Button ID="btnHidden" runat="server" Style="display: none" />
<ajaxControlToolkit:ModalPopupExtender ID="modalExtender" runat="server"
TargetControlID="btnHidden" PopupControlID="divId" />
OnClick ハンドラーでモーダルを表示します。
modalExtender.Show();
モーダル (通常はボタン) を閉じるコントロールのハンドラーで、モーダルを非表示にします。
modalExtender.Hide();
ポストバック中にデータベースからの情報をモーダルのコントロールに入力するために、サーバーにポストバックするためにこのメソッドを正常に使用できます。チャンピオンのように機能します。
ModalPopupExtender を正しく覚えていれば、ボタン ID として設定した OKControlID があります。
ポストバックを呼び出す「onclick」クライアント側ハンドラーにボタンを割り当てることはできませんか?
たとえば、次のようなものです。
myModalPopupExtender.OkButtonID = myOKButton.ID;
string script = ClientScriptManager.GetPostBackEventReference(myOKButton, myOKButton.ID);
myOKButton.Attributes.Add("onclick", script);
編集:ここでは別の潜在的な解決策のようです。
ConfirmButtonExtenderの使用について考えたことはありますか? エクステンダーを介してモーダルの「ブリング」を取得すると、必要な PostBack 処理が行われます。
処理のためにボタン クリック イベントを通常どおり配線しますが、Confirm エクステンダーは処理を "インターセプト" し、ユーザーがアクションを確認した場合に処理を続行できるようにします。
パネルに非表示のボタンを配置して、それを OkButton として設定できます。パネルに実際のボタンを追加し、その OnClick イベント ハンドラーを追加します。以下のコードを参照してください。
<cc1:ModalPopupExtender
TargetControlID="btnSubmit"
DropShadow="true"
OkControlID="btnOK"
CancelControlID="btnDecline"
PopupControlID="pnlTermsAndConditions"
BackgroundCssClass="popup"
ID="ModalPopupExtender1"
runat="server">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlTermsAndConditions" runat="server">
<table width="500" cellpadding="6" cellspacing="0" border="0" bgcolor="white">
<tr>
<td><b>Tables and Content</b></td>
</tr>
<tr>
<td><asp:TextBox ID="TermsAndCondition" runat="server" TextMode="MultiLine" Rows="10" Columns="60">
This is my terms and condoition
</asp:TextBox></td>
</tr>
<tr>
<td align="center">
<asp:Button ID="btnAccept" runat="server" CssClass="btn" Text=" Accept " OnClick="btnAccept_Click" />
<asp:Button ID="btnDecline" runat="server" CssClass="btn" Text=" Decline " />
<asp:Button ID="btnOK" style="display:none;visible:false;" runat="server" CssClass="btn" Text=" OK " />
</td>
</tr>
</table>
</asp:Panel>
これが私が探していた解決策です。素晴らしい投稿。なお、モックOKボタンは必ずしも作成する必要はありません。Modal Popup Extension 定義にオプションの OKbutton パラメータを含めないでください。