2017-08-15 51 views
0

我是newbiesin webform。我想在Webform页面中呈现“UserControl1”。然后在“UserControl1”中,我将一个列表分配给其具有“asp:Repeater”模板的子用户控件(“UserControl2”)。 “UserControl2”中的DOM除“asp:Repeater”已渲染外。无法渲染包含重复项目的子控件?

网络表单页面:

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”中的“onPreRender”方法没有触发,并且因为我不想更改AutoEventWireup值,所以我通过在“UserControl2”中添加公用方法来手动解决此问题,以便手动调用“OnPreRender”。喜欢:

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

任何建议和意见,欢迎。