母版:
public string strP;
public void Page_Load()
{
strP = @"SELECT * FROM ...";
}
内容页面:
public void Page_Load() {
if (!Page.IsPostBack) {
string strO = Master.strP; //strO = null
}
}
我知道我应该使用Page_Init
但有人可以协助我确保我能够从内容页面获得strP
的设定值。
答案 0 :(得分:3)
这是页面生命周期......
Content Page的加载方法将在Masterpage的Load方法之前触发。在两个Load事件处理程序中打一个断点,你会明白我的意思......
答案 1 :(得分:1)
Page_Load()
是为了让您做一些与页面相关的事情。你推迟了一些在构造函数中无法做的事情,因为缺少相关的对象(比如Request
,Response
等)。
查看代码,设置静态SQL语句(不需要与请求进行任何交互等)可以在构造函数中完成。
如果它与请求相关,您可以将其放在母版页的Init
事件中。
答案 2 :(得分:1)
如果其他人有相同的问题或想知道如何实现我的要求,请执行以下详细步骤:
首先在MasterPage中分配公共变量:
public string strO;
protected void Page_Init(object sender, EventArgs e)
{
strO = @""; //whatever the variable supposed to be
}
在内容页面中调用:
public string strOT;
protected void Page_Init(object sender, EventArgs e)
{
strOT = Master.strO;
}