ASP.NET AJAX Control ToolkitのModalPopupコントロールについて。
ModalPopupで指定したパネル内にあるボタンやリンクボタンなどは、それをModalPopupコントロールのOKやキャンセルボタンに指定していなくても、1度クリックするとパネルが非表示になります。ただしそのボタンで処理を行うようにしている場合はしっかり処理は実行されます。
モーダルダイアログ内で何らかの処理後、OKボタンをクリック!ってシナリオは結構ありそうなのでそのまま閉じないようにする方法を探してみたところ、ModalPopupコントロールにShowメソッドがありました。それをボタンイベント発生時に実行してみると見事に表示されたまま(厳密には非表示後の再表示?)になりました。
さらにこれをUpdatePanelコントロールで囲ってやれば部分的にPostbackするようになるので使いどころが結構ありそうです。注意すべき点はUpdatePanelコントロールに含めるならばModalPopupコントロールでプロパティ指定しているコントロールをすべて含める必要があるということでしょうか。
HTML部分(抜粋)
<asp:Panel ID="PopupPanel" runat="server" Height="50px" Width="125px">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<asp:Button ID="ReloadButton" runat="server" Text="Reload" OnClick="ReloadButton_Click" /><br />
<asp:Button ID="OKButton" runat="server" Text="OK" />
<asp:Button ID="CancelButton" runat="server" Text="Cancel" />
</asp:Panel>
<ACT:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="PopupButton"
PopupControlID="PopupPanel"
OkControlID="OKButton"
CancelControlID="CancelButton"
BackgroundCssClass="modalBackground"
DropShadow="false"
/>
ソース(抜粋)
protected void ReloadButton_Click(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
ModalPopupExtender1.Show();
}
ちなみにこれに似たコントロールにPopupControl があります。こちらはサンプルにあるようにカレンダーなどの入力補助コントロールを表示させるのによさそう。
いや~ホント便利な世の中になりましたねぇ~
投稿日時 : 2007年1月17日 19:31