2017-08-15 17 views
0

私はnewbiesin webformです。私はWebFormのページで "UserControl1"をレンダリングしたい。その後、 "UserControl1"で、 "asp:Repeater"テンプレートを持つ子のusercontrol( "UserControl2")にリストを割り当てます。 "asp:Repeater"を除く "UserControl2"のDOMがレンダリングされました。リピート項目を含む子コントロールをレンダリングできませんか?

Webフォームページ:

protected override void OnPreRender(EventArgs e) 
    { 
     var control1 = (WebUserControl1)Page.LoadControl("~/WebUserControl1.ascx"); 
     HtmlTextWriter htmlwriter = new HtmlTextWriter(new StringWriter()); 
     control1.ControlRender(); 
     control1.RenderControl(htmlwriter); 
     string html = htmlwriter.InnerWriter.ToString(); 
     base.OnPreRender(e); 
    } 

UseContrl1:

public void ControlRender() 
    { 
     OnPreRender(null); 
    } 

protected override void OnPreRender(EventArgs e) 
    { 
     List<string> list=new List<string> {"1", "2", "3"}; 
     usecontrol2.Products = list; 
    } 

事前に感謝します。

答えて

0

「UserControl2」のメソッドが起動していないため、AutoEventWireupの値を変更したくないため、「UserControl2」のパブリックメソッドを追加して手動で「OnPreRender」を呼び出して解決します。 Like:

public void ControlRender() 
{ 
    OnPreRender(null); 
} 

すべての提案と意見は歓迎です。

関連する問題