我有一个要求,只有在内容页面设置了页面标题后,我才需要将页面标题的值传递给Facebook共享插件。在一些页面(动态数据页面)中,页面标题是根据特定控件的PreRender
事件设置的(我无法更改这一点)。
如果我在母版页的PreRender
上传递内容页标题,它将返回未设置的值,因为在内容页的控件PreRender
之前激发母版页PreRender
。我尝试在母版页的Unload
事件中传递该值,但没有成功!我该如何做到这一点?
因此,这个问题可以概括为,在内容页完成所有任务并准备卸载后,在母版页上执行一些操作。
有没有一种方法可以在母版页本身中做到这一点,或者我必须在单独的页面中这样做?
参考:ASP.NET母版和内容页中的事件
动态数据页面:
string Location = null;
protected void DynamicFilter_PreRender(object sender, EventArgs e)
{
DynamicFilter Filter = (DynamicFilter)sender;
MetaColumn metaColumn = table.GetColumn(Filter.DataField);
QueryableFilterUserControl fuc1 = Filter.FilterTemplate as ForeignKeyFilter;
if (fuc1 != null && fuc1.FilterControl != null)
{
DropDownList ddl = fuc1.FindControl("DropDownList1") as DropDownList;
if (ddl != null)
{
if (metaColumn.DisplayName == "Location")
{
if (ddl.SelectedIndex != 0)
{
Location = ddl.SelectedItem.Text;
}
}
}
}
if (Location != null)
{
// set the page title based on the location
Page.Title = String.Format("Recent {0} Fares", Location);
}
}
此函数用于设置内容页(动态数据页)的标题。现在我需要访问我的主页上的这个标题,只有在它设置好之后。
母版页:
protected void Page_Load(object sender, EventArgs e)
{
// pass the value of page title to SocialNetworkingHelper class to do some work
SocialNetworkingHelper.SetSocialMediaMetaTag(this.Page, this.Page.Title);
}
使用页面卸载事件执行最终清理,如关闭文件、释放内存等。如果在此处设置页面标题,则不会呈现。。。。您必须设置标题控制预呈现事件本身。。。