我有下面的代碼母版頁後面參考母版屬性
public partial class MasterPage : System.Web.UI.MasterPage
{
public SqlConnection cnx;
protected void Page_Load(object sender, EventArgs e)
{
}
}
我如何引用市民的SqlConnection CNX財產使用該母版頁的aspx.cs文件?
我有下面的代碼母版頁後面參考母版屬性
public partial class MasterPage : System.Web.UI.MasterPage
{
public SqlConnection cnx;
protected void Page_Load(object sender, EventArgs e)
{
}
}
我如何引用市民的SqlConnection CNX財產使用該母版頁的aspx.cs文件?
在你的母版頁:
public SqlConnection CnxInMasterPage
{
get { return this.cnx; }
}
在內容頁面(第一次添加使用,所以你可以參考「母版」類型)
var cnx = ((MasterPage)Master).CnxInMasterPage;
你應該聲明一個接口IMyMasterPage
並把屬性放在那裏。允許您的母版頁執行它。
然後你可以在你的頁面上做到這一點。
var myMasterPage = this.MasterPage as IMyMasterPage
或者如果你永遠不會有更多的而不是一個母版頁,您可以將它們轉換爲MasterPage類本身,但該界面可以更容易地支持多個(或多個代碼不同的代碼)。 – Rup 2011-04-21 17:10:30
我可以問你爲什麼推薦這種方法,而不是簡單地對現有的母版頁類型進行類型轉換,或者使用'MasterType'指令? – 2011-04-21 17:22:36
@Jonathan Wood - Rup給出的原因。 – 2011-04-21 17:23:29
你有兩個選擇:
Master
屬性爲您MasterPage
類型,並從那裏繼續。<%@ MasterType virtualpath="~/path/to/master.master" %>
包含在您的aspx文件中,它將強烈地鍵入主屬性。
+1;好,它的智能解決方案。 – 2011-04-21 17:52:54