我有一个要求,即只有在内容页面设置了页面标题后才需要将页面标题的值传递给Facebook共享插件。有一些页面(动态数据页面),页面的标题是在特定控件的PreRender
事件上设置的(我无法更改)。
如果我在母版页PreRender
上传递了内容页面标题,则会返回未设置的值,因为在内容页面的控制之前,母版页PreRender
被触发{ {1}}。我尝试在主页的PreRender
事件中传递值,但它不起作用!我如何实现这一目标?
所以问题可以概括为,在内容页面执行完所有任务并准备卸载后,在母版页上执行某些操作。
有没有办法在母版页本身中执行此操作,还是必须在各个页面中执行此操作?
参考:Events in ASP.NET Master and Content Pages
动态数据页:
Unload
此功能设置内容页面(动态数据页面)标题。 现在,只有在设置完成后,我才需要在我的母版页上访问此标题。
母版页:
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);
}
}
答案 0 :(得分:1)
使用页面卸载事件执行最终清理,如关闭文件,释放内存等...如果你在这里设置页面标题它将不会被渲染....你必须在控制预渲染事件本身设置标题... < / p>