我有一个简单的ASP.NET Web用户控件。它看起来像这样:
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="NewsArticle.ascx.cs"
Inherits="Website.Controls.NewsArticle" %>
<div>
<asp:Literal ID="ltlBody" runat="server" />
</div>
我的代码背后是这样的:
namespace Website.Controls
{
public partial class NewsArticle : System.Web.UI.UserControl
{
public String bodyText
{
//get { return ltlBody.Text; }
set { ltlBody.Text = value; }
}
}
}
在.aspx页面上我有<asp:Panel ID="pNews" runat="server" />
在我背后的代码中:
foreach (vwNews news in newsQuery)
{
NewsArticle article = new NewsArticle();
article.bodyText = news.Body;
pNews.Controls.Add(article);
}
每次运行此代码时,都会正确填充newsQuery,然后我就开始了
aticle.bodyText = news.Body;
然后我收到了错误article.bodyText threw an exception of type 'System.NullReferenceException'
我不确定导致此错误消息的原因或解决方法。我认为应该没有问题。我尝试为我的Web用户控件创建一个构造函数,以便它为我的属性提供默认值,但这不起作用。知道如何使这项工作?它似乎不应该是
答案 0 :(得分:4)
要以编程方式加载控件,您需要使用Page.Load Control()方法。请参阅this MSDN文章
答案 1 :(得分:-1)
您编写的代码中有拼写错误。 'aticle'而不是'article'。