UserControl with databound repeater drops values on postback

P

paul.hester

Hi all,

I have a user control that contains a repeater that generates a list of
check boxes. The checkboxes render fine, but they don't maintain their
checked state on postback.

I've tried using Page_Load, Page_Init, OnInit, enabling and disabling
viewstate without success. Any help would be appreciated.

Thanks,

Paul

ASCX:

<asp:Repeater ID="countryList" runat="server">
<HeaderTemplate>
<table cellpadding="2" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="countryID" Value='<%# Eval("CountryID") %>'
runat="server" /></td>
<td><asp:Label AssociatedControlID="countryID" runat="server"><%#
Eval("Name") %></asp:Label></td>
<td><img src="<%# string.Format("/images/flags/{0}.gif",
Eval("CountryID")) %>" height="13" width="24" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

ASCX.CS:

protected void Page_Init(object sender, EventArgs e)
{
// get countries
countryList.DataSource = Country.GetCountries();
DataBind();
}
 
T

Teemu Keiski

Hi,

you must not run DataBind on every postback in the control since it clears
the selections. And second, you need to do binding in Page_Load inside
if(!IsPostBack check), essentially:

protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
// get countries
countryList.DataSource = Country.GetCountries();
countryList.DataBind();
}
}

If you need to reload the data, then do DataBind as needed but not on every
request.
 
P

paul.hester

Hi Teemu,

Thanks for getting back to me. That doesn't work, unfortunately. I can
take all of the code out of the user control and put it in my page and
the checkboxes maintain their values perfectly on postback, but
something about having it in a UserControl stops this from working.

Any help would be appreciated.

Thanks,

Paul
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top