aspx 頁面與ascx使用者控制項傳值的問題
1.建立ascx控制項
2.給ascx加上屬性
3.將控制項拖入aspx中
4.在aspx的代碼中按控制項ID訪問屬性
如: <uc3:left_Repassword ID="left_Repassword1" runat="server" />
left_Repassword1.HighLight = value;
也同樣適用於master頁面訪問ascx
ASP.Net訪問主版頁面(MasterPage)控制項、屬性、方法及主版頁面中調用內容頁的方法
總結了一下ASP.Net訪問主版頁面(master)控制項、屬性、方法及主版頁面中調用內容頁(aspx)的方法,供大家參考:
首先,必須通過內容頁中的MasterTye指令,對主版頁面實施強型別化,即在內容頁代碼頭的設定中增加如下指令
<%@ MasterType VirtualPath="~/Master/MenuElement.master" %>
其中VirtualPath設定主版頁面URL地址。
1.擷取主版頁面控制項引用。
範例程式碼 複製代碼 代碼如下:/// <summary>
/// 擷取對母板頁中一個TreeView控制項的引用
/// </summary>
public TreeView ElementStructureTree
{
get
{
return tvElementStructure;
}
set
{
tvElementStructure = value;
}
}
如 上代碼所示,在主版頁面中定義一個公用屬性ElementStructureTree,該屬引用了主版頁面中tvElementStructure控制項,然後 在內容頁中就可以通過公用屬性Master(核心對象Page的一個屬性)來引用主版頁面中tvElementStructure控制項,如下:
TreeView tv = Master.ElementStructureTree;
2.訪問主版頁面屬性。
主版頁面中的屬性一般有三種:實值型別、類類型、控制項類型,上面的“擷取主版頁面控制項引用”實際上就是訪問控制項類型屬性,其它兩種類型的屬性可以用同樣的方法訪問。
3.調用主版頁面方法。
主版頁面中定義的公用方法可以通過Master直接調用。
4.主版頁面中調用內容頁的方法。
主版頁面中定義委託:
public delegate void ElementSelectedChangeHandler();
主版頁面中執行個體化委託(又是一個屬性):
public ElementSelectedChangeHandler ElementSelectedChange { private get; set; }
在主版頁面中需要的地方調用委託: 複製代碼 代碼如下:if (ElementSelectedChange != null)
{
ElementSelectedChange();
}
內容頁中指定一個與委託簽名匹配的方法:
Master.ElementSelectedChange = this.ElementSelectedChange;
5.Master頁的AutoEventWireup屬性一定要設定為"true",才會自動觸發Master頁中控制項的所有事件。