2

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 で機能させることができますか、それとも別の方法がありますか? ありがとう

4

6 に答える 6

5

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

ポストバック中にデータベースからの情報をモーダルのコントロールに入力するために、サーバーにポストバックするためにこのメソッドを正常に使用できます。チャンピオンのように機能します。

于 2009-05-22T17:11:20.910 に答える
2

ModalPopupExtender を正しく覚えていれば、ボタン ID として設定した OKControlID があります。

ポストバックを呼び出す「onclick」クライアント側ハンドラーにボタンを割り当てることはできませんか?

たとえば、次のようなものです。

 myModalPopupExtender.OkButtonID = myOKButton.ID;
 string script = ClientScriptManager.GetPostBackEventReference(myOKButton, myOKButton.ID);

 myOKButton.Attributes.Add("onclick", script);

編集:ここでは別の潜在的な解決策のようです。

于 2009-04-30T21:45:50.730 に答える
2

ConfirmButtonExtenderの使用について考えたことはありますか? エクステンダーを介してモーダルの「ブリング」を取得すると、必要な PostBack 処理が行われます。

処理のためにボタン クリック イベントを通常どおり配線しますが、Confirm エクステンダーは処理を "インターセプト" し、ユーザーがアクションを確認した場合に処理を続行できるようにします。

于 2009-04-30T22:00:55.763 に答える
2

パネルに非表示のボタンを配置して、それを 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>
于 2009-06-04T13:39:14.423 に答える
2

これが私が探していた解決策です。素晴らしい投稿。なお、モックOKボタンは必ずしも作成する必要はありません。Modal Popup Extension 定義にオプションの OKbutton パラメータを含めないでください。

于 2009-07-30T18:36:38.167 に答える