Question

i'm using a HtmlInputCheckBox in a repeater by adding

<input id="CheckBox1" type="checkbox" runat="server" value='<%# Eval ("userid") %>' />

to repeater->ItemTemplate->table->tr->td and in the server side i'm using

protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < UserRepeater.Items.Count; i++)
        {
            var chkBox = UserRepeater.Items[i].FindControl("CheckBox1") as HtmlInputCheckBox;

            if (chkBox != null && chkBox.Checked)
            {
                //
            }
        }
    }

i'm not programatically setting any checkbox to set - i'm checking them on the web page during test. my var checkbox is always inchecked {Value = "1,2,3,4" Checked = false}, thx for helping me with that.

Was it helpful?

Solution

How are you populating your repeater - if you are doing it in page_load make sure it is protected for postbacks:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        // populate your data
    }
}

EDIT
This is assuming you are working with viewstate on - which is the case by default.

OTHER TIPS

This may be to do with when you bind your repeater. If you are binding on Page_Load, the check boxes will be created after viewstate and post variables have been restored, so the value won't be on your checkboxes.

If possible, move the data bind to Page_Init; as this happens before viewstate/post values are restored your checkboxes will get the right values assigned. If you can't bind on Page_Init, then @Aristos's answer will do.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top