[轉貼] ASP.NET自訂使用者控制項

2012030422:05

ASP.NET自訂使用者控制項

使用者自訂控制項 - User Control - MIS2000 Lab.的 ASP.NET 4.0 專題實務-教學與分享- 點部落

Web 使用者控制項和 Web 自訂控制項

[ASP.NET]動態新增User Control,並設定屬性值與取屬性值

 

UserControl傳值、執行父網頁事件

FindControl()方法 與 PlaceHolder控制項 #1 (動態加入「子控制項」的事件) FindControl()方法 與 PlaceHolder控制項 #2(動態加入「子控制項」的事件)

 

[C#.NET] 如何 使用 委派 Delegate / 事件 event

 

傳統ASP有include方法可以將其他程式帶到主程式裡,到了.net時代就不要再用這個古老的方法了。在.net中我們可以自訂使用者控制項

(.ascx)讓不同的程式共用,不僅可以自訂控制項的操作介面,還能自訂它的屬性和方法。

1.新增自訂控制項:

首先,新增一個「web使用者控制項」項目,假設命名為wu.ascx,我們可以像開發.aspx一樣,從工具箱拖曳控制項到wu.ascx的設計頁面中,

並撰寫處理的程式碼。比較特別的是,這個.ascx檔會成為一個新的控制項,並可以自訂它的屬性和方法。

2.自訂屬性:

假設.ascx中有一個TextBox1控制項,我們想取它的Text值當做屬性,則我們可以加上這段程式碼:

public string text //text為屬性名稱
{
get{return TextBox1.Text;} //取得TextBox1.Text值當做text的值
}

3.自訂方法:

同上例,若我們要自訂一個將Textbox1.Text值改為123的方法,寫法如下:

public void test()
{
Textbox1.Text = "123";
}

4.自訂事件

我們還可以自訂這個控制項的事件,假設我們在wu.ascx拖曳了一個Button1控制項,要自訂Button1按下的事件,寫法如下:

public event EventHandler btn_Click; //自訂一個名為btn_Click的事件

protected void Button1_Click(object sender, EventArgs e) //這是Button1的Click事件
{
   if (btn_Click != null)
   {
     btn_Click(sender, e); //指定這個事件到我們自訂的btn_Click
   }
}

5.使用自訂控制項

要使用自訂控制項wu,只要將wu.ascx檔拖曳到.aspx的設計畫面中,就跟拖曳工具箱的方式一樣,wu自訂控制項就會出現在畫面上。

(1)承上例,在.aspx中使用wu的屬性(印出text屬性值):

Response.Write(wu.text);

(2)承上例,在.aspx中使用wu的"test"方法:

wu.test();

(3)承上例,在.aspx中使用wu的btn_Click事件:

protected void btn_Click(object sender, EventArgs e)
{
   //事件發生要處理的內容
}