I was trying to find a solution which did bulk updating for all the rows in a gridview, as the gridview provided by VS2005 had its usability issue (at least that's what I thought). After doing some googling I found a set of different grid views available at codeplex called 'ASP.NET Real World Controls'.

Its got a BulkEditGridView, FrozenGridView, GroupingGridView, InlineInsertGridView and TwoHeadedGridView. You can get a hold of the .dll file from http://www.codeplex.com/ASPNetRealWorldContr.
Here is an example of bulk edit grid view.

<cc1:BulkEditGridView ID="BulkEditGridView1" runat="server" AutoGenerateColumns="False"            

DataKeyNames="CategoryID" DataSourceID="AccessDataSource1" EnableInsert="False"            

InsertRowCount="1" SaveButtonID="Button1" AllowPaging="True" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" Width="502px"><Columns>

<asp:BoundField ReadOnly="True" DataField="CategoryID" InsertVisible="False" SortExpression="CategoryID" HeaderText="CategoryID"></asp:BoundField>

<asp:BoundField DataField="CategoryName" SortExpression="CategoryName" HeaderText="CategoryName"></asp:BoundField>

<asp:BoundField DataField="Description" SortExpression="Description" HeaderText="Description"></asp:BoundField>

</Columns>            

<FooterStyle BackColor="Tan" />            

<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />            

<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />            

<HeaderStyle BackColor="Tan" Font-Bold="True" />            

<AlternatingRowStyle BackColor="PaleGoldenrod" /> </cc1:BulkEditGridView>        

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Nwind.mdb"            

DeleteCommand="DELETE FROM [Categories] WHERE [CategoryID] = ?" InsertCommand="INSERT INTO [Categories] ([CategoryID], [CategoryName], [Description]) VALUES (?, ?, ?)"             SelectCommand="SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"            

UpdateCommand="UPDATE [Categories] SET [CategoryName] = ?, [Description] = ? WHERE [CategoryID] = ?">             <DeleteParameters>                 <asp:Parameter Name="CategoryID" Type="Int32" />             </DeleteParameters>            

<UpdateParameters>                 <asp:Parameter Name="CategoryName" Type="String" />                

<asp:Parameter Name="Description" Type="String" />                 <asp:Parameter Name="CategoryID" Type="Int32" />            

 </UpdateParameters>             <InsertParameters>                 <asp:Parameter Name="CategoryID" Type="Int32" />      

           <asp:Parameter Name="CategoryName" Type="String" />                 <asp:Parameter Name="Description" Type="String" />             </InsertParameters>         </asp:AccessDataSource>         <asp:Button ID="Button1" runat="server" Text="Update" Width="200px" />

 


You just need to make sure that you changed the SaveButtonID property to the button's ID.