2013年11月19日 星期二

副檔名 - acsx 與 aspx

副檔名 - acsx 與 aspx的關係「就是把元件放在 ascx 上,然後在 aspx 裡使用」,在 ascx 裡放入 DataGrid 然後在 aspx 裡呼叫,並以 findcontrol 方式來連結設定相關的屬性。
相關的動作
  1. 增加 WebUserControl (ascx) 檔案
  2. 在 aspx 裡註冊使用 ascx 
  3. 利用 findcontrol 對應 ascx 裡的元件
##增加 WebUserControl (ascx) 檔案 ##
增加「Web 使用者控制項-WebUserControl

然後在 WebuserControl 裡放入你要使用的元件,例如我放入的是「DataGrid」所以增加下面這行程式碼:

<asp:DataGrid ID="gd" runat="server"></asp:DataGrid>

## 在 aspx 裡註冊使用 ascx ##
1. 在 aspx 前頭宣告部份增加:

<%@ Register TagPrefix="wuc" TagName="wuc1" Src="~/WebUserControl1.ascx" %>

載入的檔名、TagName 都可以自行設定。

2. 在 aspx 的 body 裡,在你想放元件的地方,插入下面這行:

<wuc:wuc1 ID="wuc1" runat="server" />

## 利用 findcontrol 對應 ascx 裡的元件 ##
元件是放在 ascx 裡,所以在 apsx 裡要應用就必須先用 findcontrol 把他對應起來,底下的例子,是將 findcontrol 的動作寫在 page_load ,然後指定 SqlDataSource 接著 bind 起來。

protected void Page_Load(object sender, EventArgs e)
{
    DataGrid gd1 = new DataGrid();
    gd1 = (DataGrid)wuc1.FindControl("gd");
    gd1.DataSource = SqlDataSource1;
    gd1.DataBind ();
}

Master Page 可以用來設計通用的版面樣式,只要修改 Master page 底下所有的內容表單都會連動變更,這樣可以省時省力的修改頁面的樣式
相同的,如果許多頁面都含有 DataGrid 或 Gridview 之類的元件,這些元件會有搭配的顏色及對應的樣式。將元件放到 ascx 裡並設定樣式,只要修改 ascx 裡樣式,所有引用的頁面都會一起就做修改,主版面色系一改,就不用將所有的 DG、GV 都一起就做修改
即使有多種的樣式,都一樣可以放在 ascx 裡,然後再各別給名稱就即可。

-雲遊山水為知已逍遙一生而忘齡- 電腦神手

3 則留言: