如何在启用部分渲染的情况下强制使用Master Render事件?

时间:2017-03-23 11:44:35

标签: c# asp.net

我在Master页面的Render事件中有一些代码需要在每次回发时运行,因为它用于翻译某些HTML内容。但是,当我使用UpdatePanel和部分渲染设置为true的ScriptManager时,事件似乎不会在回发时触发。我可以强制触发事件,还是可以在其他地方运行我的代码以产生相同的结果?

protected override void Render(HtmlTextWriter writer)
{
    string originalContent = String.Empty;
    string translatedContent = String.Empty;

    using (StringWriter sw = new StringWriter())
    {
        using (HtmlTextWriter htw = new HtmlTextWriter(sw))
        {
            base.Render(htw);
            htw.Close();

            originalContent = sw.ToString();
        }
    }

    // Translate content:
    translatedContent = ApplyGlobalization(Page, originalContent);

    // Write updated HTML:
    writer.Write(translatedContent);
}

1 个答案:

答案 0 :(得分:0)

通过使用Render重写创建我自己的UpdatePanel解决了这个问题。我将相同的代码放入该方法,但必须进行一些更改以适应转换方法,以适应UpdatePanel在部分回发时创建的特殊输出。