У меня есть данные в виде списка.Удаление строк из баз данных списка по значению для столбца
ID TelcoName Reload Value (RM) Количество Всего (RM) 1 Maxis 5 1 5 Удалить 2 Digi 5 1 5 Удалить
Это в основном то, что моя таблица выглядит. Мой HTML-код это:
<asp:ListView ID="ListView1" runat="server" OnSorting="ListView1Sorting" OnItemCommand="ListView1_ItemCommand">
<LayoutTemplate>
<table border="0" cellpadding="1">
<tr style="background-color:#FFFFFF">
<th align="center"><asp:Label ID="lblId" runat="server">Id </asp:Label></th>
<th align="center"><asp:Label ID="lblName" runat="server">TelcoName </asp:Label></th>
<th align="center"><asp:Label ID="lblReloadValue" runat="server">Reload Value(RM) </asp:Label></th>
<th align="center"><asp:Label ID="lblQuantity" runat="server">Quantity </asp:Label></th>
<th align="center"><asp:Label ID="lblTotal" runat="server">Total (RM) </asp:Label></th>
<th></th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td align="center"><asp:Label runat="server" ID="lblId"><%#Eval("ID") %></asp:Label></td>
<td align="center"><asp:Label runat="server" ID="lblTelcoName"><%#Eval("TelcoName") %></asp:Label></td>
<td align="center"><asp:Label runat="server" ID="lblReloadValue"><%#Eval("ReloadValue")%></asp:Label></td>
<td align="center"><asp:Label runat="server" ID="lblQuantity"><%#Eval("Quantity")%></asp:Label></td>
<td align="center"><asp:Label runat="server" ID="lblTotal"><%#Eval("Total")%></asp:Label></td>
<td align="center"><asp:LinkButton ID="lnkDelete" runat="server" CommandName="Sort" CommandArgument="Delete">Delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
</asp:ListView>
Это мой позади код для удаления:
Protected Sub ListView1_ItemCommand (ByVal отправитель As Object, ByVal е Как ListViewCommandEventArgs) Если (e.CommandName) = «Сортировка "Затем Dim txteno As Label = DirectCast (e.Item.FindControl (" ID "), Label) Dim deleteecommand As String =" удалить из dt, где ID = "& Convert.ToInt32 (txteno.text) Сессия (" dt "). DeleteCommand = deletecommand End If End Sub
Моя проблема здесь в том, что я coud'nt получаю идентификатор строки, которую пользователь выбирает. «Идентификатор» - это имя первого столбца, но когда я запускаю веб-сайт, это утверждение ничего не возвращает.
дим txteno в качестве метки = DirectCast (e.Item.FindControl («ID»), этикетка)
Мой вопрос, как я получить значение столбца («ID»), чтобы использовать для удаления данные? я спрашиваю, а кто-то предлагает мне использовать e.item.DataItemIndex, но я не могу найти эту команду в любом месте. Любая идея, как это решить?
Это только что был добавлен
Dim дт как новый DataTable Dim я = 0 Dim ID As New DataColumn ("ID") dt.Columns.Add (ID) Dim TelcoName As New DataColumn ("TelcoName") dt.Columns.Add (TelcoName) Dim ReloadValue As New DataColumn ("ReloadValue") dt.Columns.Add (ReloadValue) Dim Количество As New DataColumn ("Количество") dt.Columns.Add (Количество) Dim Total As New DataColumn ("Total") dt.Columns.Add (Всего) ListView1.DataSource = дт ListView1.DataBind() Session («дт») = дт
После того, как я переплетены в ListView, мне нужно delcare имя для DataTable, так что я могу использовать его в качестве ссылка для оператора sql или я могу просто оставить его как dt и в sql-инструкции, когда я обращаюсь к dt, это относится к таблице в списке?
я делать, как вы предложили и переход от «ID» в «lblID», но им по-прежнему не в состоянии верните индекс строки, который мне нужен. То, что я получаю, просто пустое для lblID. Кто-то сказал мне, что это связано с тем, что DirectControl работает только с временем рендеринга в методе ListView_ItemDataBound. Могу ли я знать, что это значит? Я до сих пор не могу найти этот метод. –
Привет, вы использовали «lblID» или «lblId» - он будет чувствителен к регистру. Я отвечу на ваши другие вопросы, насколько это возможно в отдельном комментарии .... – nkvu
Re: e.Item.DataItemIndex, с какой версией .NET вы работаете? Если вы посмотрите на документ для [ListViewCommandEventArgs] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewcommandeventargs.item.aspx), он имеет свойство Item, которое имеет тип ListViewItem , Если вы посмотрите [здесь] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewitem.dataitemindex.aspx) в ListViewItem, свойство DataItemIndex доступно только в .NET 4 или 4.5 ... может быть, поэтому вы не можете найти метод? – nkvu