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

Posted

技术标签:

【中文标题】c# asp.net,添加自定义控件【英文标题】:c# asp.net , add custom control 【发布时间】:2011-03-23 12:36:48 【问题描述】:

我在 asp.net webforms (c#) 中创建了一个名为“Article”的用户控件,其中包含文章的一般布局,并具有一个名为 datasource 的公共属性。数据源将由亚音速 (DAL) 活动记录填充。在控件预渲染事件中,它将读取记录并填充标签。我认为这是一个易于维护的灵活解决方案。

然而,我的问题是,当我尝试将控件添加到占位符时,我的所有控件(如标签、文字等)都会收到空引用异常。

我正在尝试按如下方式生成控件:

        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);
        

有什么我完全错过的吗?快把我逼疯了嘿嘿!另一个问题是你们知道这种方法是否会对性能产生很大影响。我每页只添加 10 个这些文章控件。

感谢您的宝贵时间!

亲切的问候, 标记

【问题讨论】:

【参考方案1】:

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

像这样:

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

【讨论】:

以上是关于c# asp.net,添加自定义控件的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET用户自定义控件

向 asp.NET RadioButton 控件添加自定义属性

ASP.NET 自定义控件 - 未知的服务器标记

C# 自定义FileUpload控件

ASP.Net Ajax:如何从其DLL中向asp.net 2.0工具箱添加自定义控件

自定义 ASP.NET 容器控件