【ASP.NET】ASP.NETでshowModalDialogを使わずに、モーダル表示 ~Step1~

ASP.NETでshowModalDialogを使わずに、モーダル表示

 * 全然改良の余地(CSSなど)があり、そもそもモーダルになっていないが、とりあえずサンプルを記す

サンプル

モーダル:ユーザコントロール

WebUserControl1.ascx

<%@ Control Language="vb" AutoEventWireup="false"
 CodeBehind="WebUserControl1.ascx.vb"
 Inherits="WebApplication1.WebUserControl1" %>
<asp:Panel ID="Panel1" runat="server" Visible="False">
  <asp:Panel ID="Panel2" runat="server" Wrap="False" BackColor="#C0C0FF">
    <p>Please Input your data :</p>
    <p>
      <asp:TextBox ID="Text1" runat="server"></asp:TextBox>
      <asp:Button ID="Button1" runat="server" Text="決定" />
      <asp:Button ID="Button2" runat="server" Text="キャンセル" style="height: 21px" />
    </p>
  </asp:Panel>
</asp:Panel>

WebUserControl1.ascx.vb

Public Class WebUserControl1
    Inherits System.Web.UI.UserControl

    Public Event ClickOK(ByVal sender As Object, ByVal e As EventArgs)
    Public Event ClickCancel(ByVal sender As Object, ByVal e As EventArgs)

    Public Property DialogVisible As Boolean
        Set(value As Boolean)
            Me.Panel1.Visible = value
        End Set
        Get
            Return Me.Panel1.Visible
        End Get
    End Property

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        sender = Me.Text1.Text
        RaiseEvent ClickOK(sender, e)
        Me.Panel1.Visible = False
    End Sub

    Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        RaiseEvent ClickCancel(sender, e)
        Me.Panel1.Visible = False
    End Sub
End Class

使用する側

WebForm1.aspx

<asp:LinkButton ID="LinkButton1" runat="server">ポップアップ</asp:LinkButton><br />
<uc1:WebUserControl1 ID="WebUserControl11" runat="server" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

WebForm1.aspx.vb

Protected Sub LinkButton1_Click(sender As Object, e As EventArgs) Handles LinkButton1.Click
    Me.WebUserControl11.DialogVisible = True
End Sub

Private Sub DialogClickOK(ByVal sender As Object, ByVal e As EventArgs) Handles WebUserControl11.ClickOK
    Dim value As String = sender.ToString()
    Me.Label1.Text = value
End Sub

関連記事

ASP.NETでshowModalDialogを使わずに、モーダル表示 ~Step1~

http://blogs.yahoo.co.jp/dk521123/28248646.html

ASP.NET AJAX Control Toolkit (ModalPopupExtender, モーダル編)

http://blogs.yahoo.co.jp/dk521123/folder/982850.html

ASP.NETでshowModalDialog()を利用したモーダルの子画面ダイアログを表示する(1)

http://blogs.yahoo.co.jp/dk521123/27710267.html

ASP.NETでshowModalDialog()を利用したモーダルの子画面ダイアログを表示する(2)

http://blogs.yahoo.co.jp/dk521123/27723613.html

モーダルの子画面ダイアログを作成する

http://blogs.yahoo.co.jp/dk521123/27419535.html

カレンダーコントロール(Calendar)

http://blogs.yahoo.co.jp/dk521123/26916160.html