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.