Postback / Repeater Data Disappearing Problem
I have a user control with a repeater in it that displays some information on it in an inital page_load. Upon postback, the data disappears. I have Viewstate enabled everywhere, so that shouldn't be it. I removed a if (!Page.IsPostBack) event (commented out below) and then I get the following error:
System.NullReferenceException: Object reference not set to an instance of an object.
Line 65: Label1.text = data1.Title
I have my code below for the repeater and for the codebehind. The user control is nested within 2 other user controls which is in a master page. Thanks in advance!
Repeater
<asp:Repeater ID="Repeater1" runat="server" EnableViewState="true" OnItemCreated="Repeater1_ItemCreated">
<ItemTemplate>
<p><strong><asp:Label ID="lblItemTitle" runat="server"></asp:Label></strong> <br />
<asp:Label ID="lblItemDescription" runat="server"></asp:Label> <asp:HyperLink ID="hypMore" runat="server">[more]</asp:HyperLink>
</p>
</ItemTemplate>
</asp:Repeater>
User Control .ascx
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CMSDataLayer;
using CommonLib;
public partial class Controls_LeftSidebar_RecentPressReleases : BaseControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.BasicPageInfo != null)
{
this.Visible = true;
CMSDataLayer.PagesItemsToShowDB pItemsDB = new CMSDataLayer.PagesItemsToShowDB();
CMSDataLayer.PagesItemsToShowData[] rg = pItemsDB.PagesItemsToShow_GetForPage(base.PageGUID);
NewsReleaseData[] dataArray1 = null;
foreach (CMSDataLayer.PagesItemsToShowData ttm in rg)
{
switch ((CommonLib.ModuleType)ttm.ItemType)
{
case CommonLib.ModuleType.PRESSRELEASE:
dataArray1 = new NewsReleasesDB().NewsRelease_GetLatestOfType((int)CommonLib.NewsType.PRESSRELEASES, ttm.ItemCount);
break;
}
}
if (dataArray1 != null && dataArray1.Length > 0)
{
this.Repeater1.DataSource = dataArray1;
this.Repeater1.DataBind();
}
else
{
this.Visible = false;
}
}
else
{
this.Visible = false;
}
}
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.AlternatingItem) || (e.Item.ItemType == ListItemType.Item))
{
NewsReleaseData data1 = (NewsReleaseData)e.Item.DataItem;
Label label1 = (Label)e.Item.FindControl("lblItemTitle");
Label label2 = (Label)e.Item.FindControl("lblItemDescription");
HyperLink link1 = (HyperLink)e.Item.FindControl("hypMore");
/*if (!Page.IsPostBack)
{*/
label1.Text = data1.Title;
label2.Text = data1.Description;
link1.NavigateUrl = GlobalData.TRCBaseURL + "content/news.aspx?" + BaseControl.NEWSRELEASE_GUID + "=" + data1.GUID.ToString() + "&" + BaseControl.PAGE_GUID + "=" + base.PageGUID.ToString();
/*}
else
{
}*/
}
}
}

