P.Brian.Mackey
P.Brian.Mackey

Reputation: 44275

Put multiple rows of a gridview into edit mode

I have the need to allow a user to "tab through" making edits on a gridview. There will be one editable column in the row data. The user should be able to hit tab and go to the next row to edit said column.

I have not found any easy method to accomplish this task. I found a way to programmatically put a gridview into edit mode, but in testing the code below it works for only 1 row at a time.

        reviewTransferGV.EditIndex = 0;
        reviewTransferGV.Rows[0].RowState = DataControlRowState.Edit;
        reviewTransferGV.EditIndex = 1;
        reviewTransferGV.Rows[1].RowState = DataControlRowState.Edit;
        reviewTransferGV.DataBind();

Upvotes: 3

Views: 12825

Answers (3)

IFink
IFink

Reputation: 774

Another point is how to save the results to the DataBase. While in regular use, we simple call the update command who does the work, in ItemTemplate there are now update button. So i add a button outside the GridView and in the handler i call the UpdateRow method manually for each row.

Upvotes: 0

jpiolho
jpiolho

Reputation: 1192

I did a workaround by creating a property in the page:

protected bool IsEditMode
{
  get { return this.EditMode; }
  set { this.EditMode = value; }
}

Then in the GridView I have the controls for view and edit mode inside an item template. Setting the visibility based on the property value:

<asp:TemplateField SortExpression="Status" HeaderText="Status">
<ItemTemplate>
    <asp:Label Id="lblStatus" Text='<%# Eval("Status") %>' Visible='<%# !IsEditMode %>' runat="server" />
    <asp:TextBox ID="txtStatus" Text='<%# Eval("Status") %>' Visible='<%# IsEditMode %>' runat="server" />
</ItemTemplate>

This works for editing the whole gridview. You'll probably need to make a few modifications to make it work for individual rows.

Upvotes: 10

John Bledsoe
John Bledsoe

Reputation: 17642

I don't believe it is possible for a GridView to have multiple rows in edit mode simultaneously. If you want to edit multiple rows, you will need to roll your own mechanism to do so.

Upvotes: 0

Related Questions