用戶控件的簡(jiǎn)單使用例子,做一個(gè)用戶登陸的用戶控件。 用戶登陸某個(gè)系統(tǒng)是個(gè)非常常見的問題,這里筆者想把這樣的問題作為一個(gè)用戶控件來使用,方便各個(gè)用戶。 1、在工程中新建立一個(gè)Web用戶控件,此時(shí)加入的名稱為FrLogin.ascs。 2、把需要的控件拖放到該web中,比如兩個(gè)Label,兩個(gè)TextBox,一個(gè)Button分別命名為lblUserName,lblPassword,txtUserName,txtPassword,btnLogin 3、增加兩個(gè)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;} } 這樣就可以在你的用戶控件拖放到另一個(gè)Web頁面中時(shí)獲取或設(shè)置他們的值了。 4、添加Button事件的代理 先雙擊你的btnLogin產(chǎn)生相應(yīng)事件處理函數(shù) 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函數(shù) 增加如下代碼,即執(zhí)行代理 if(OnRegisterClicked!=null) OnRegisterClicked(sender,e); 到這里你的用戶控件已經(jīng)定已完成。很簡(jiǎn)單是嗎?因?yàn)?net環(huán)境已經(jīng)幫助你完成了很多的后臺(tái)操作。 6、把FrLogin.ascs拖放到你需要引用的頁面中,.net已經(jīng)為你產(chǎn)生了<%@ Register TagPrefix="uc1" TagName="FrLogin" Src="FrLogin.ascx" %> <uc1:FrLogin id="FrLogin1" backColor="Black" runat="server"></uc1:FrLogin>,這些都是自動(dòng)的。這里的缺陷是它并沒有幫你在TestPage.aspx.cs生成protected FrLogin FrLogin1;代碼,你需要手工添加。注意控件的名稱要與html定義中的一致。 7、在InitializeComponent()增加事件代理的真正處理函數(shù) 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); } 注意此處的簽名. 好了,已經(jīng)完成了,試試看。 |
|