Ben Hoffman
Ben Hoffman

Reputation: 8261

Adding an ASP.NET Web User Control to a Control Dynamically

I have a simple ASP.NET Web User Control. It looks like this:

<%@ Control Language="C#" AutoEventWireup="true" 
    CodeBehind="NewsArticle.ascx.cs" 
    Inherits="Website.Controls.NewsArticle" %>

<div>
    <asp:Literal ID="ltlBody" runat="server" />
</div>

My code behind looks like this:

namespace Website.Controls
{
    public partial class NewsArticle : System.Web.UI.UserControl
    {
        public String bodyText
        {
            //get { return ltlBody.Text; }
            set { ltlBody.Text = value; }
        }
    }
}

On a .aspx page I have <asp:Panel ID="pNews" runat="server" />

In the code behind I have:

foreach (vwNews news in newsQuery)
{
    NewsArticle article = new NewsArticle();
    article.bodyText = news.Body;

    pNews.Controls.Add(article);
}

Every time I run this code the newsQuery is populated correctly and I get to the line aticle.bodyText = news.Body; and then I received the error article.bodyText threw an exception of type 'System.NullReferenceException'

I am not sure what is causing this error message or how to fix it. I would think that there should not be an issue. I tried creating a constructor for my Web User Control so that it would give default values to my properties but that didn't work. Any idea how to make this work? It doesn't seem like it should be that

Upvotes: 3

Views: 2892

Answers (2)

Coding Flow
Coding Flow

Reputation: 21881

To load a control programatically you need to use the Page.LoadControl() method. See this MSDN article

Upvotes: 4

marcusstarnes
marcusstarnes

Reputation: 6531

You have a typo within the code you've written. 'aticle' instead of 'article'.

Upvotes: -2

Related Questions