0

チェックボックスリストからチェックボックスを選択した後、グリッドビューにデータを入力する必要があります。ループを使用しようとしています。ユーザーがチェックボックスをオフにした場合は、グリッドビューも非表示にする必要があります。SQLステートメントを使用してデータを取得しています。SQL は、チェック ボックスに関連付けられているデータをすべてプルする必要があります 'Shows Books from selected Category Protected Sub chkbListControl_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles chkListControl.SelectedIndexChanged

    Dim sqlChecked As String = "select * " _
                              & "from Books, Categories " _
                              & "where Categories.CategoryCode=Books.CategoryCode " _
                              & "order by Title;"

    Dim sqlUnChecked As String = "select * from Books where Categories.CategoryCode=Books.CategoryCode;"

    Dim selectedIndex As Integer = chkListControl.SelectedIndex
    Dim i As Integer

    If (selectedIndex <> -1) Then

        For i = 0 To chkListControl.Items.Count - 1

            If chkListControl.Items(i).Selected Then

                gvwBookList.DataSource = ReturnTable(sqlChecked)
                gvwBookList.DataBind()

            Else

                gvwBookList.DataSource = ReturnTable(sqlUnChecked)
                gvwBookList.DataBind()
                gvwBookList.Visible = False

            End If
        Next
    End If

End Sub
4

1 に答える 1

0

このようにsqlcheckedを変更する必要があります

 dim selectedcategories as string=""
  If (selectedIndex <> -1) Then

    For i = 0 To chkListControl.Items.Count - 1

        If chkListControl.Items(i).Selected Then

         if selectedcategories="" then
            selectedcategories=chkListControl.Items(i).value
         else
            selectedcategories &="," & chkListControl.Items(i).value
         end if

        End If
    Next
End If

 dim strSQL as string=""
             if selectedcategories.trim<>"" then
                    strSQL = "select * " _
                          & "from Books, Categories " _
                          & "where Categories.CategoryCode=Books.CategoryCode and                     Categories.CategoryCode in (" & selectedcategories &  ")" _
                          & "order by Title;"
   else
strSQL="select * from Books where Categories.CategoryCode=Books.CategoryCode;"

   end if

            gvwBookList.DataSource = ReturnTable(strSQL)
            gvwBookList.DataBind()

要件に応じて上記のコードを変更できます。

于 2013-02-15T06:15:00.023 に答える