在我的应用程序中,用户可以根据公司的兴趣从数据表中选择不同的选项。因此,从名为SEL_Dewey_Subcat_Raw的存储过程填充一个checkboxlist,它将ID值和名称输出到复选框列表。这没关系,而且工作正常。
但现在我需要用户能够编辑他们之前选择的内容。所以我需要根据他们之前选择的内容填充复选框列表,如果在选择该特定项目之前选择了该类别。
填充CBL的代码:
SELECT * FROM [dbo].[Dewey_Subcat] ORDER BY[dbo].[Dewey_Subcat].[Nombre] ASC
此信息存储在名为[dbo]的数据表中。[Proveedores_Dewey],它有以下列:
因此,如果选择了一个复选框项,则存储的数据将为:
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]并取消选中其他项目?
谢谢!
答案 0 :(得分:1)
找到相应的值时,以下代码选择当前项:
{{1}}
然而,之后,将从数据库中获取下一个值并进行检查。它不等于i.Value(因为前一个值是),而li.Selected属性将重置为False。
在执行li.Selected = True代码后,打破当前循环并检查下一个'li'项。