我有下面的代码母版页后面参考母版属性
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