ASP.NETユーザーコントロールの説明とイベントの追加


WEB開発では、ナビゲーションバー、ユーザー登録/登録、トップページ上の固定欄など、多くの場所で繰り返されるコードがよくあります.これらの再利用可能なコードは、開発時間を節約し、今後のメンテナンスを容易にするための汎用モジュールとして参照することができます.
ASP.NETのウェブプログラミングでは、ASPXページに挿入するためにascxファイルが使用され、1つのASPXフォームには
フラグが1つしか含まれないため、ascxユーザーコントロールに
フラグを含めることはできません.
1.次に、古典的な入門例を使用して、簡単なユーザーコントロールを作成します.

Hello.ascx
 <html>
    <body>
      <h1>      </h1><hr>
      <h3>Hello Word</h3>
    </body>
  </html>

このコードをハローとして保存します.ascxファイルは、ASPXページで呼び出されます.具体的には、次のように呼び出されます.

Hello.aspx  
<%@Register TagPrefix=”wen” TagName=”Hello” src=”Hello.ascx”%>
<html>
<body>
 <form id=frm runat=server>
   <wen:Hello ID=MyHello runat=server>
 </form>
</body>
</html>

IEブラウザのアドレスに入力http://localhost/Hello.aspx実行すると、ページに文字列「Hello word」が印刷されます.
コード摘要:1)コマンド@Registerは、ユーザーコントロールファイルのラベル名「Hello」とラベル接頭辞名「wen」を定義します.
2)src属性は、ユーザコントロールに接続された関連ファイル名である.
3)ASPXフォームでユーザコントロールHelloを呼び出す.ascxの文.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2、以下のデモコードはコントロールに属性を追加する
次に、ユーザーがログインしたファイルを挙げて、ユーザーコントロールとして作成し、UserNameとPassWordの2つのプロパティを追加します.
ユーザーコントロールにプロパティを追加するのは簡単です.ascxファイルのブロックで定義すればいいです.これでUserLoginにascxファイルにはUserNameとPassWordの2つのプロパティが追加されています.次のDEMOでは、ASPXページで2つのプロパティを参照する方法を示します.

UserLogin.ascx  
<html>
<title>    </title>
<body>
 <table>
    <tr>
      <td>   :</td>
      <td><asp:TextBox ID=”txt1” runat=”server”></td>
    </tr>
<tr>
 <td>    :</td>
 <td><asp:TextBox ID=”txt2” TextMode=”password” runat=”server”></td>
</tr>
<hr>
<tr>
 <td></td>
 <td><asp:LinkButton Text=”  ” runat=”server”></td>
</tr>
</table>
</body>
</html>
<script language=”C#” runat=”server”>
 public string UserName{
   get{return txt1.Text;}
   set{txt1.Text=value;}
}
 public string PassWord{
   get{return txt2.Text;}
   set{txt2.Text=value;}
}
</script>
 

UserLogin.aspx
<%@Register TagPrefix=”wen” TagName=”UserLogin” src=” UserLogin.ascx” %>
<html>
<title>    </title>
<body>
 <form runat=”server”>
    <wen: UserLogin ID=”MyLogin” runat=”server”>
 </form>
     :<asp:Label ID=”Lab1” runat=”server”/><br>
      :<asp:Label ID=”Lab2” runat=”server”/><br>
</body>
</html>
<script language=”C#” runat=”server”>
void Page_Load(Object sender,EventArgs e){
 if(IsPostBack){
    Lab1.Text=MyLogin.UserName;
    Lab2.Text=MyLogin.PassWord;
}
}
</script>
 

3、以下のデモコードはコントロールにイベントを追加する
上記では、ユーザーがログインするユーザーコントロールUserLoginを定義しました.AscxファイルにはLinkButtonサーバーのボタンコントロールが含まれており、ユーザーがこのボタンをクリックするとサーバー側が自動的に返信を生成してPageを励起する.Loadイベント.サーバが自動的に返信を生成してPageを励起する以外は.Loadイベントに加えて、LinkButtonに独自のイベントを追加することができます.イベントを追加するのも簡単です.ブロックでイベントを宣言し、ユーザーコントロールに追加します.
次の例では、UserLoginでの方法を説明します.ascxユーザーコントロールにイベントを追加します. 

UserLogin.ascx  
<html>
<title>    </title>
<body>
 <table>
    <tr>
      <td>   :</td>
      <td><asp:TextBox ID=”txt1” runat=”server”></td>
    </tr>
<tr>
 <td>    :</td>
 <td><asp:TextBox ID=”txt2” TextMode=”password” runat=”server”></td>
</tr>
<hr>
<tr>
 <td></td>
 <td><asp:LinkButton Text=”  ” OnClick=”MyOnClick” runat=”server”></td>
</tr>
</table>
</body>
</html>
<script language=”C#” runat=”server”>
 public string UserName{
   get{return txt1.Text;}
   set{txt1.Text=value;}
}
 public string PassWord{
   get{return txt2.Text;}
   set{txt2.Text=value;}
}
public event Eventhandler Login; //       
          void MyOnClick(Object Sender,EventArgs e){ 
             if(Login != null) 
                Login(this,new EventArgs()); //  Login   
        } 
    </script>
 

ASPXページでカスタムイベントを使用するには:

<%@Register TagPrefix=”wen” TagName=”UserEvent” src=” UserLogin.ascx”%>  
<html>
<body>
 <form runat=server>
   <wen:UserEvent ID=”MyLogin” OnLogin=”OnLoginPress” runat=”server”>
 </form>
 <asp:Label ID=”Lab1” runat=”server”/><br>
 <asp:Label ID=”Lab2” runat=”server”/><br>
</body>
</html>
<script Language=”C#” runat=”server”>
void OnLoginPress(Object Render, EventArgs e){
 Lab1.Text=MyLogin.UserName;
 Lab2.Text=MyLogin.PassWord;
}
</script>
 

説明:ここのOnLoginイベントは、ユーザーコントロールUserLoginに与えられたものです.ascxファイルに追加されたイベント.
変換元:http://blog.csdn.net/durongjian/archive/2009/01/10/3746095.aspx