在呈现内容页面后,在母版页上触发了哪个事件

时间:2016-03-29 13:08:39

标签: c# asp.net webforms asp.net-dynamic-data

我有一个要求,即只有在内容页面设置了页面标题后才需要将页面标题的值传递给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);
    }
}

1 个答案:

答案 0 :(得分:1)

使用页面卸载事件执行最终清理,如关闭文件,释放内存等...如果你在这里设置页面标题它将不会被渲染....你必须在控制预渲染事件本身设置标题... < / p>

相关问题