c#asp.net,添加自定义控件

时间:2010-07-31 01:06:42

标签: c# asp.net user-controls

我在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个文章控件。

谢谢你的时间!

亲切的问候, 标记

1 个答案:

答案 0 :(得分:0)

您没有实例化用户控件。您需要使用LoadControl方法。

像这样:

ArticleUserControl myControl = (ArticleUserControl)LoadControl("~/PathToUc/MyControl.ascx");
myControl.datasource = item;
phControl.Controls.Add(myControl);