从ListView中选择具有复选框的特定行

时间:2016-06-06 10:59:46

标签: asp.net vb.net listview

我已将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>

1 个答案:

答案 0 :(得分:0)

我会通过查找所有选中的项目来遍历您的列表视图。找到项目后,您可以将它们放入列表中,或者每次调用SQL。如果你为每个sql循环,你每次都会调用数据库。在任何一种情况下,尝试先检查项目。

下面将遍历listview并获取所有选中的项目并将它们放入String中。

Dim MyItems as String = ""
For Each item in medicalList.CheckedItems
MsgBox(item.Text)
MyItems += item.Text
Next