Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

c#

asp.net-3.5

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

like image 530
Ben Hoffman Avatar asked May 23 '26 17:05

Ben Hoffman


1 Answers

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

like image 94
Ben Robinson Avatar answered May 25 '26 07:05

Ben Robinson



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!