質問

Atlas:を使用して確認を作成する例に従ってくださいModalPopup Extender を使用して、ModalPopupのOkButtonがクリックされたときにポストバックを作成します(ASP.NET Ajax Control Toolkitに付属のModalPopupExtenderを使用します)が、ご覧のとおり、Sys.WebForms.PostBackAction()はASP.NET AJAXには存在しません(例はAtlas用です)。実行すると" Microsoft JScript runtime error:Object expected" PostBackActionを作成するjavascriptの行にエラーメッセージが表示されます。これをASP.NET AJAXで動作させるにはどうすればよいですか、または別の方法がありますか?ありがとう

役に立ちましたか?

解決

ConfirmButtonExtender の使用を検討しましたか?モーダルの「キラキラ」を取得します。エクステンダーを使用して、必要なPostBack処理を行います。

ボタンクリックイベントを通常通り処理しますが、確認エクステンダーは「インターセプト」します;処理を行い、ユーザーがアクションを確認した場合に処理を続行できるようにします。

他のヒント

サーバー側イベントは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);

編集別の潜在的なソリューションはこちらのようです

パネルに非表示ボタンを配置し、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" />&nbsp;&nbsp;
    <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パラメーターを含めないでください。

サーバー側のOnClickイベントをボタンに追加するだけですか?これにより、フォーム全体がポストバックされます。 または、htmlからメインフォーム($ find( 'myFormName')または何か)を取得し、それに対して.submit()を実行できます。

scroll top