用戶控件的簡單使用例子,做一個用戶登陸的用戶控件。 用戶登陸某個系統是個非常常見的問題,這里筆者想把這樣的問題作為一個用戶控件來使用,方便各個用戶。
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); } 注意此處的簽名. 好了,已經完成了,試試看。
|