CheckBox in ASP.NET GridView template field does not retain it's value on submit

3.3k views Asked by At

I'm trying to use CheckBoxes within a GridView's TemplateField to select multiple entries from that GridView. The GridView's data source is a list of items that is generated at page load.

<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False" 
            AllowPaging="True" onpageindexchanging="TANsGridView_PageIndexChanging" 
            DataKeyNames="GUID">
            <Columns>
                <asp:TemplateField ShowHeader="False" HeaderText="Checker">
                    <ItemTemplate>
                        <asp:CheckBox ID="SelectCheckbox" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>

The problem is that when I press a submit button, all the CheckBoxes are returned with the Checked property as 'false'.

For cycling through the rows, I use:

foreach (GridViewRow row in TANsGridView.Rows)
        {
            CheckBox cb = (CheckBox)row.FindControl("SelectCheckbox");
        }

What should I use in order to have access to the correct value?

Thanks, Catalin

2

There are 2 answers

0
Nick Spiers On BEST ANSWER

Are you mistakingly rebinding the gridview on page load every time? The gridview binding code should be wrapped in a if statement ensuring it's only done on not postback.

Am I supposed to put this here for an accept check now? :)

0
Shyam s On

if your are binding the grid on page load.load the grid like this.

if(!ispostback)
{
..........loading data to databind.

}