使用者控制項使用一例
使用者控制項的簡單使用例子,做一個使用者登陸的使用者控制項。
使用者登陸某個系統是個非常常見的問題,這裡筆者想把這樣的問題作為一個使用者控制項來使用,方便各個使用者。
1、在工程中建立立一個Web使用者控制項,此時加入的名稱為FrLogin.ascs。
2、把需要的控制項拖放到該web中,比如兩個Label,兩個TextBox,一個Button分別命名為lblUserName,lblPassword,txtUserName,txtPassword,btnLogin
3、增加兩個TextBox的屬性代碼
public string UserName
{
get{return this.txtUserName.Text;}
set{this.txtUserName.Text=value;}
}
public string Password
{
get{return this.txtPassword.Text;}
set{this.txtPassword.Text=value;}
}
這樣就可以在你的使用者控制項拖放到另一個Web頁面中時擷取或設定他們的值了。
4、添加Button事件的代理
先雙擊你的btnLogin產生相應事件處理函數
private void btnRegister_Click(object sender, System.EventArgs e)
{
}
然後聲明事件的代理
public delegate void OnRegisterClickedHandler(object sender, System.EventArgs e);注意此處的簽名要正確。
public event OnRegisterClickedHandler OnRegisterClicked;
5、修改btnRegister_Click函數
增加如下代碼,即執行代理
if(OnRegisterClicked!=null)
OnRegisterClicked(sender,e);
到這裡你的使用者控制項已經定已完成。很簡單是嗎?因為.net環境已經協助你完成了很多的後台操作。
6、把FrLogin.ascs拖放到你需要引用的頁面中,.net已經為你產生了<%@ Register TagPrefix="uc1" TagName="FrLogin" Src="FrLogin.ascx" %>
<uc1:FrLogin id="FrLogin1" backColor="Black" runat="server"></uc1:FrLogin>,這些都是自動的。這裡的缺陷是它並沒有幫你在TestPage.aspx.cs產生protected FrLogin FrLogin1;代碼,你需要手工添加。注意控制項的名稱要與html定義中的一致。
7、在InitializeComponent()增加事件代理的真正處理函數
this.FrLogin1.OnRegisterClicked+=new Reques.FrLogin.OnRegisterClickedHandler(OnRegisterClicked);
8、處理你的事件
private void OnRegisterClicked(object sender, System.EventArgs e)
{
Response.Write("user Name:"+ this.FrLogin1.UserName+ "Password" + this.FrLogin1.Password);
}
注意此處的簽名.
好了,已經完成了,試試看。