C # или VB.NET меня устраивают.
У меня нет возможности использовать элемент управления источником данных для ListView. Все ListView связаны с данными из кода программной части. Итак, мне нужно вручную обрабатывать режим редактирования / обновления ListView.
Вот наценка:
<asp:ListView ID="lvList" runat="server" DataKeyNames="Id">
<LayoutTemplate>
<table id="TimeSheet" cellspacing="1" class="tablesorter">
<thead>
<tr>
<th>
Edit
</th>
<th>
<a href="#">Ref. #</a>
</th>
<th>
<a href="#">Category</a>
</th>
</tr>
</thead>
<tbody>
<tr id="itemPlaceholder" runat="server" />
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<asp:LinkButton ID="lnkEdit" runat="server" ToolTip="Edit Category" CommandName="Edit">Edit</asp:LinkButton>
</td>
<td>
<%#Eval("Id")%>
</td>
<td>
<%#HttpUtility.HtmlEncode(Eval("CategoryNameEN"))%>
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<p>
<b>Product Name:</b>
<asp:TextBox ID="txtCategoryEN" runat="server" Text='<%# Bind("CategoryNameEN") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvCategoryName" ControlToValidate="txtCategoryEN" Display="Dynamic"
runat="server" ErrorMessage="[Required]"></asp:RequiredFieldValidator>
<br />
<p>
<asp:LinkButton ID="lnkUpdate" runat="server" ToolTip="Update Category" AlternateText="Update Category" CommandName="Update">Update</asp:LinkButton>
<asp:LinkButton ID="lnkCancel" runat="server" ToolTip="Cancel" AlternateText="Cancel" CausesValidation="false" CommandName="Cancel" >Cancel</asp:LinkButton>
</p>
</EditItemTemplate>
</asp:ListView>
Вот код, стоящий за:
Protected Sub LoadListView()
'GetGategory returns DataTable
lvList.DataSource = GetCategory()
lvList.DataBind()
End Sub
Protected Sub lvList_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles lvList.ItemCommand
'handling update logic
End Sub
Когда я нажимал ссылку «Изменить» в ItemTemplate, чтобы перейти в режим редактирования, я всегда получаю сообщение об ошибке:
> System.InvalidOperationException: The ListView 'lvList' raised event ItemEditing which wasn't handled.
Как включить режим редактирования в ListView, связанный с данными программно?
Спасибо.