Search code examples
asp.netgridviewcheckboxtemplatefield

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


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


Solution

  • 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? :)