Data binding won't update source.

I have a checkbox in a template field in a gridview.  Two way binding is set for the checkbox control.  But, checking the checkbox does not update the source table.

(Line 26 in the code is the actual bind)

What might I be missing?  Thanks.
<asp:GridView ID="GridViewBrowse" runat="server" AllowSorting="True" 
                        BackColor="White" BorderColor="White" BorderStyle="Ridge"
                        BorderWidth="2px" CellPadding="3" CellSpacing="1" CssClass="TableFont" DataSourceID="SqlDataSourceBrowse"
                        EmptyDataText="Records will be displayed here.  Click select on a record for detailed data"
                        GridLines="None" Height="1px" PageSize="6" TabIndex="3" Width="762px" 
                        AutoGenerateColumns="False">
                        <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
                        <Columns>
                            <asp:BoundField DataField="TicketID" HeaderText="TicketID" SortExpression="TicketID" />
                            <asp:BoundField DataField="Reception Number" HeaderText="Reception Number" SortExpression="Reception Number" />
                            <asp:BoundField DataField="Submitted By" HeaderText="Submitted By" SortExpression="Submitted By" />
                            <asp:BoundField DataField="Submit Date" HeaderText="Submit Date" 
                                SortExpression="Submit Date" />
                            <asp:BoundField DataField="Update Type" HeaderText="Update Type" SortExpression="Update Type" />
                            <asp:BoundField DataField="Brief Desc" HeaderText="Brief Desc" 
                                SortExpression="Brief Desc">
                            </asp:BoundField>
                            <asp:BoundField DataField="Submiters Comments" HeaderText="Submiters Comments" 
                                SortExpression="Submiters Comments" />
                            <asp:BoundField DataField="Complete" HeaderText="Complete" 
                                SortExpression="Complete" />
                            <asp:BoundField DataField="Schedule Count" HeaderText="Schedule Count" 
                                SortExpression="Schedule Count" />
                            <asp:TemplateField HeaderText="test templet">
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("Archived") %>' 
                                        AutoPostBack="True" oncheckedchanged="CheckBox2_CheckedChanged" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
                        <EditRowStyle Wrap="False" />
                        <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
                    </asp:GridView>

Open in new window

sabevAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sabevAuthor Commented:
Or, if when CheckBox_CheckedChanged event is fired, if I could determine the row of the GridView the checkbox is in, that would be even better.  It should have some parent and location information, shouldn't it?

thanks
0
sabevAuthor Commented:
(Notes for the OP):

The original databinding problem is not so much an issue as getting the RowIndex when the checkbox is changed.

hmm....  I have tried adding onRowCommand="MyDataGrid_EditCommand" to the <asp:GridView object, hoping it would call the code behind "MyDataGrid_EditCommand" sub routine when the checkbox is checked but it does not call it.

It does not seem like I can pass the RowIndex on the CheckBox_CheckedChanged event.

Is there some event within the GridView that I can get to fire when a checkbox located in a template is checked?

I've tried -
OnRowCommand
OnRowEditing
OnRowUpdating

With no luck.

Thanks
0
sabevAuthor Commented:
I figured it out...  at least how the get the row index on check box changed.  That will solve my problem
It's simple.

    Protected Sub CheckBox2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim gvRow As GridViewRow
        Dim chkbx As CheckBox
        Dim intRowIndex As Integer

        chkbx = sender
        gvRow = chkbx.Parent.Parent
        intRowIndex = gvRow.RowIndex
' perform work agains that row here
end sub


0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.