2017-03-23 87 views
0

我的母版頁的Render事件中有一些代碼需要在每次回發時運行,因爲它用於翻譯一些HTML內容。但是,當我使用UpdatePanel和部分呈現設置爲true的ScriptManager時,事件似乎不會在回發時觸發。我可以強制該事件觸發,還是可以在別處運行我的代碼以產生相同的結果?如何強制渲染Master Render事件並啓用部分渲染?

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); 
} 
+0

UpdatePanel中包含的每個頁面似乎都觸發了其Render事件。爲什麼這個,爲什麼Master Render不會這樣做? – firant

回答

0

通過創建我自己的帶有渲染覆蓋的UpdatePanel解決了這個問題。我將相同的代碼放入該方法中,但必須進行一些更改以適應翻譯方法以適應UpdatePanel在部分回發中創建的特殊輸出。