我在列表视图中有一个数据表。
ID TelcoName Reload Value(RM) 数量 Total(RM) 1 Maxis 5 1 5 Delete 2 Digi 5 1 5 Delete
这基本上就是我的桌子的样子。我的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 sender As Object, ByVal e As ListViewCommandEventArgs) If (e.CommandName) = "Sort" Then Dim txteno As Label = DirectCast(e.Item.FindControl("ID"), Label) Dim deletecommand As String = “从 dt 中删除 ID =” & Convert.ToInt32(txteno.text) Session(“dt”).DeleteCommand = deletecommand End If End Sub
我的问题是我无法获得用户选择的行的 ID。“ID”是第一列的名称,但是当我运行网站时,此语句不返回任何内容。
Dim txteno As Label = DirectCast(e.Item.FindControl("ID"), Label)
我的问题是如何检索用于删除数据的列(“Id”)的值?我四处打听,有人建议我使用 e.item.DataItemIndex 但我无法在任何地方找到此命令。知道如何解决这个问题吗?
这是刚刚添加的
Dim dt As New DataTable Dim i = 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 Quantity As New DataColumn("Quantity") dt.Columns.Add(Quantity) Dim Total As New DataColumn("Total") dt.Columns.Add(Total) ListView1 .DataSource = dt ListView1.DataBind() Session("dt") = dt
绑定到列表视图后,我是否需要删除数据表的名称,以便我可以将其用作 sql 语句的引用,或者我可以将其保留为 dt 并在 sql 语句中,当我引用 dt 时,它引用到列表视图中的表格?