I would like to know how to put all of my ListView rows into edit mode at once. I am not looking for the traditional behavior of editing each row one at a time. The answer can be in either C# or VB.NET.
Also, if possible, any sample code of saving each row’s changes after all rows have been edited.
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
Probably the easiest way is to just use the ListView’s ItemTemplate, so in essence, the ListView is always in “edit mode”:
<asp:ListView
ID="lvwDepartments"
runat="server"
DataKeyNames="department_id"
DataSourceID="sqlDepartments"
ItemPlaceholderID="plcItem">
<ItemTemplate>
<tr>
<td>
<%# Eval("department_id") %>
</td>
<td>
<asp:TextBox runat="server" ID="txtDepartmentName" Text='<%# Eval("dname") %>' Columns="30" />
</td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<p>
No departments found.
</p>
</EmptyDataTemplate>
<LayoutTemplate>
<table>
<thead>
<tr>
<th>Department ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder runat="server" ID="plcItem" />
</tbody>
</table>
</LayoutTemplate>
</asp:ListView>
<asp:SqlDataSource
ID="sqlDepartments"
runat="server"
ConnectionString="<%$ ConnectionStrings:HelpDeskConnectionString %>"
SelectCommand="SELECT * FROM [departments]" />
<asp:Button runat="server" ID="cmdSave" Text="Save Changes" OnClick="cmdSave_Click" />
You can then read the changed values when the user clicks the button:
protected void cmdSave_Click ( object sender, EventArgs e )
{
foreach ( ListViewItem item in lvwDepartments.Items )
{
if ( item.ItemType == ListViewItemType.DataItem )
{
TextBox txtDepartmentName = ( TextBox ) item.FindControl( "txtDepartmentName" );
// Process changed data here...
}
}
}
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