我已将ListView放在我的页面中,每行都有复选框。现在假设我在listview&中有10条记录从10我想检查4所以哪个被检查itéID应该存储在字符串中(,)所以我可以更新我的表。请告诉我怎么做。由于我是vb.net的新手,我从教程中尝试了一些东西,但是它不起作用..
VB
Private Sub assignOrder_Click(sender As Object, e As EventArgs) Handles assignOrder.Click
For Each item As ListViewDataItem In Me.medicalList.Items
If item.ItemType = ListViewItemType.DataItem Then
Dim checkedChemist As CheckBox = TryCast(item.FindControl("selectChemists"), CheckBox)
If checkedChemist.Checked Then
Dim constr As String = ConfigurationManager.ConnectionStrings("conio2").ConnectionString
Using con2 As New MySqlConnection(constr)
Using cmd As New MySqlCommand("Update newMedicinesOrders set `status` = @status, `viewBy` = '" + +"' WHERE OrderID = @orderID")
Using sda As New MySqlDataAdapter()
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@orderID", orderid.Text)
cmd.Parameters.AddWithValue("@status", "Pending")
cmd.Connection = con2
con2.Open()
cmd.ExecuteReader()
con2.Close()
End Using
End Using
End Using
Response.Redirect(Request.Url.AbsoluteUri)
End If
End If
Next
End Sub
ASPX
<asp:ListView ID="medicalList" runat="server" GroupPlaceholderID="groupPlaceHolder1"
ItemPlaceholderID="itemPlaceHolder1" OnPagePropertiesChanging="OnPagePropertiesChanging">
<LayoutTemplate>
<table class="pharmaList">
<tr>
<td class="header-row"></td>
<td class="header-row">ID</td>
<td class="header-row">Name</td>
<td class="header-row">Email</td>
<td class="header-row">Contact Number</td>
</tr>
<asp:PlaceHolder runat="server" ID="groupPlaceHolder1"></asp:PlaceHolder>
<tr>
<td colspan="9">
<asp:DataPager ID="DataPager1" runat="server" PagedControlID="medicalList" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="false" ShowPreviousPageButton="true"
ShowNextPageButton="false" />
<asp:NumericPagerField ButtonType="Link" />
<asp:NextPreviousPagerField ButtonType="Link" ShowNextPageButton="true" ShowLastPageButton="false" ShowPreviousPageButton="false" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder1"></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="selectChemists" runat="server" /></td>
<td class="content-row"><asp:Label ID="id" runat="server" Text='<%# Eval("chemistID") %>'></asp:Label></td>
<td class="content-row"><asp:Label ID="chemistName" runat="server" Text='<%# Eval("name") %>'></asp:Label></td>
<td class="content-row"><asp:Label ID="chemistEmail" runat="server" Text='<%# Eval("email") %>'></asp:Label></td>
<td class="content-row"><asp:Label ID="chemistContact" runat="server" Text='<%# Eval("mobileNumber") %>'></asp:Label></td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<div class="form-row">
<strong>No Medicals Found...</strong>
</div>
</EmptyDataTemplate>
</asp:ListView>
答案 0 :(得分:0)
我会通过查找所有选中的项目来遍历您的列表视图。找到项目后,您可以将它们放入列表中,或者每次调用SQL。如果你为每个sql循环,你每次都会调用数据库。在任何一种情况下,尝试先检查项目。
下面将遍历listview并获取所有选中的项目并将它们放入String中。
Dim MyItems as String = ""
For Each item in medicalList.CheckedItems
MsgBox(item.Text)
MyItems += item.Text
Next