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();
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
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.
Method 2
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.
Method 3
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.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0