Masterpage 中的页面加载访问晚于 page.pageload
Page load in Masterpage is accessed later than page.pageload
我在 Masterpage 和 child pages 中有一些标签。所有这些标签中的值都来自 单个数据库查询 。我想 运行 这个查询一次,以便填充 Master 和 Child 中的标签。有办法吗?
这是我问题的最简化版本
下面是我如何初始化母版页 page_load 中的 public 属性(我使用 viewstate 以便其他方法也可以使用这些属性)
protected void Page_Load(object sender, EventArgs e)
{
Meeting = bal.GetMeetingByID(MeetingID)[0];//DB QUERY
}
页面加载中的属性如下
public Meeting1 Meeting
{
set
{
ViewState["Meeting"] = value;
}
get
{
if (ViewState["Meeting"] != null)
return (Meeting1)ViewState["Meeting"];
else
return null;
}
} private int meetingID = -1;
public int MeetingID
{
get
{
if (meetingID == -1)
try
{
meetingID = int.Parse(Request.QueryString["meetingID"]);
}
catch (Exception)
{
Response.Redirect("~/Main.aspx");
}
return meetingID;
}
}
现在在子页面中我有
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
DataBindControls();
}
private void DataBindControls()
{
tbMeetingTitle.DataBind();
}
Meeting.aspx页面是这样的
<tr>
<td>Meeting Title</td>
<td colspan="3">
<asp:TextBox ID="tbMeetingTitle" runat="server" Width="714px" Text='<%# GetData("MeetingTitle") %>' AutoPostBack="true" ></asp:TextBox></td>
</tr>
我希望现在我的问题已经清楚了。
不,您不能更改顺序,但有一种方法可以在您的子页面中指定强类型模型,或者您可以在您的子页面中进行强制转换以引用任何 public 属性母版页。
不,这是不可能的。但是,请注意,您的问题尚不清楚。据我了解,您面临一些性能问题。我建议检查您的应用程序设计。应用像捕捉这样的练习。以下 link 在我处理 asp.net 应用程序时提供了帮助
http://www.codeproject.com/Articles/23306/ASP-NET-Performance-and-Scalability-Secrets
我在 Masterpage 和 child pages 中有一些标签。所有这些标签中的值都来自 单个数据库查询 。我想 运行 这个查询一次,以便填充 Master 和 Child 中的标签。有办法吗?
这是我问题的最简化版本
下面是我如何初始化母版页 page_load 中的 public 属性(我使用 viewstate 以便其他方法也可以使用这些属性)
protected void Page_Load(object sender, EventArgs e)
{
Meeting = bal.GetMeetingByID(MeetingID)[0];//DB QUERY
}
页面加载中的属性如下
public Meeting1 Meeting
{
set
{
ViewState["Meeting"] = value;
}
get
{
if (ViewState["Meeting"] != null)
return (Meeting1)ViewState["Meeting"];
else
return null;
}
} private int meetingID = -1;
public int MeetingID
{
get
{
if (meetingID == -1)
try
{
meetingID = int.Parse(Request.QueryString["meetingID"]);
}
catch (Exception)
{
Response.Redirect("~/Main.aspx");
}
return meetingID;
}
}
现在在子页面中我有
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
DataBindControls();
}
private void DataBindControls()
{
tbMeetingTitle.DataBind();
}
Meeting.aspx页面是这样的
<tr>
<td>Meeting Title</td>
<td colspan="3">
<asp:TextBox ID="tbMeetingTitle" runat="server" Width="714px" Text='<%# GetData("MeetingTitle") %>' AutoPostBack="true" ></asp:TextBox></td>
</tr>
我希望现在我的问题已经清楚了。
不,您不能更改顺序,但有一种方法可以在您的子页面中指定强类型模型,或者您可以在您的子页面中进行强制转换以引用任何 public 属性母版页。
不,这是不可能的。但是,请注意,您的问题尚不清楚。据我了解,您面临一些性能问题。我建议检查您的应用程序设计。应用像捕捉这样的练习。以下 link 在我处理 asp.net 应用程序时提供了帮助
http://www.codeproject.com/Articles/23306/ASP-NET-Performance-and-Scalability-Secrets