我在asp.net webforms(c#)中创建了一个名为“Article”的usercontrol,它包含文章的一般布局,并且有一个名为datasource的公共属性。数据源将由亚音速(DAL)activerecord填充。在控件预渲染事件中,它将读取记录并填充标签。我认为这是一个易于维护的灵活解决方案。
我的问题是,当我尝试将控件添加到占位符时,我的所有控件(如标签,文字等)都会收到空引用异常。
我正在尝试按如下方式生成控件:
foreach (DAL.Article item in coll)
{
p7.Controls.General.Article.Article article = new p7.Controls.General.Article.Article();
article.datasource = item;
phContent.Controls.Add(article);
}
有没有我完全错过的东西?这让我疯狂heheh!另一个问题是,你们知道这种方法是否会对性能产生重大影响。我每页只添加10个文章控件。
谢谢你的时间!
亲切的问候, 标记
答案 0 :(得分:0)
您没有实例化用户控件。您需要使用LoadControl方法。
像这样:
ArticleUserControl myControl = (ArticleUserControl)LoadControl("~/PathToUc/MyControl.ascx");
myControl.datasource = item;
phControl.Controls.Add(myControl);