【问题标题】:How to check or uncheck a checkboxlist item according to database values如何根据数据库值选中或取消选中复选框列表项
【发布时间】:2018-06-06 22:30:14
【问题描述】:

在我的应用程序中,用户可以根据公司的兴趣从数据表中选择不同的选项。因此,复选框列表从名为 SEL_Dewey_Subcat_Raw 的存储过程中填充,该存储过程将 ID 值和名称打印到复选框列表。这没关系,并且工作正常。

但现在我需要用户能够编辑他们之前选择的内容。所以我需要根据他们之前选择的内容填充复选框列表,如果在必须选择特定项目之前选择了类别。

填充 CBL 的代码:

SELECT * FROM [dbo].[Dewey_Subcat] ORDER BY[dbo].[Dewey_Subcat].[Nombre] ASC

此信息存储在名为 [dbo].[Proveedores_Dewey] 的数据表中,它具有以下列:

  1. ID(PK 整数)
  2. Id_Proveedor (int),客户端的ID
  3. Id_Dewey_Subcat (int),类别的ID

因此,例如,如果选中了一个复选框项目,则存储的数据将是:

ID:1 Id_Proveedor:24(客户 ID) Id_Dewey_Subcat:38(类别)

这是迄今为止我为编辑面板复选框列表编写的代码,但它不起作用!

For Each li As ListItem In Dewey_RBL.Items
        Dim SqlConDeweyCBL As SqlConnection
        Dim SqlComDeweyCBL As SqlCommand
        Dim SqlDRDeweyCBL As SqlDataReader
        SqlConDeweyCBL = New SqlConnection(ConfigurationManager.ConnectionStrings("EnchufeBBMCA").ToString())
        SqlComDeweyCBL = New SqlCommand("SELECT [dbo].[Proveedores_Dewey].[Id_Dewey_Subcat] FROM [dbo].[Proveedores_Dewey] WHERE([dbo].[Proveedores_Dewey].[IdProveedor] = '" & empresaId & "')", SqlConDeweyCBL)
        If SqlConDeweyCBL.State = ConnectionState.Closed Then
            SqlConDeweyCBL.Open()
        End If
        SqlDRDeweyCBL = SqlComDeweyCBL.ExecuteReader()
        While SqlDRDeweyCBL.Read()

            If SqlDRDeweyCBL("Id_Dewey_Subcat") = li.Value Then

                li.Selected = True
            Else

                li.Selected = False
            End If

        End While
        SqlDRDeweyCBL.Close()
        SqlConDeweyCBL.Close()
    Next

那么如何检查存储在 [dbo].[Proveedores_Dewey] 中的复选框列表中的项目,而其他项目不选中?

谢谢!

【问题讨论】:

    标签: sql asp.net sql-server checkbox


    【解决方案1】:

    当找到对应的值时,以下代码选择当前项:

     While SqlDRDeweyCBL.Read()
    
            If SqlDRDeweyCBL("Id_Dewey_Subcat") = li.Value Then
    
                li.Selected = True
            Else
    
                li.Selected = False
            End If
    
        End While
    

    但是,之后将从数据库中获取下一个值并进行检查。它不会等于 i.Value(因为之前的值是)并且 li.Selected 属性将被重置为 False。

    在 li.Selected = True 代码执行后,中断当前循环并检查下一个“li”项。

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多