我继承了一个应用程序,该应用程序具有在 asp.net checkboxlist 控件中保存和填充值的代码。现有代码非常冗长,对我来说似乎效率不高。我计划重写这个应用程序并完全控制数据库设计。有人可以就我如何改进和缩短下面的代码提供任何建议。
所有的复选框列表项都作为位字段存储在 sql 表中。每行复选框列表值都分配给一个用户标识。再一次,我的目标是找到一种更有效的方法来使用更少的代码来保存和填充选定的复选框列表项。谢谢。
Database Design
UserID AA BC AC
1 1 1 0
2 0 1 1
3 1 1 0
4 1 1 1
'Code to populate selected checkboxlist items
Dim CodeData as datarow
CodeData = CodeDataTable.Rows(0)
For Each li As ListItem In Me.cblCodes.Items
If li.Text = "AA" Then
If Not CodeData.IsOneNull Then
If CodeData.One = True Then
li.Selected = True
End If
End If
End If
If li.Text = "BC" Then
If Not CodeData.IsTwoNull Then
If CodeData.Two = True Then
li.Selected = True
End If
End If
End If
If li.Text = "AC" Then
If Not CodeData.IsTwoNull Then
If CodeData.Two = True Then
li.Selected = True
End If
End If
End If
......
Next
'Code to save checkboxlist values
Dim AA As Boolean = False
Dim BC As Boolean = False
Dim AC As Boolean = False
Dim AD As Boolean = False
AA = Me.cblCodes.Items.FindByText("AA").Selected()
BC = Me.cblCodes.Items.FindByText("BC").Selected
AC = Me.cblCodes.Items.FindByText("AC").Selected
AD = Me.cblCodes.Items.FindByText("AD").Selected
CodeTableAdapter.UpdateCodes(UserID,AA,BC,AC,AD.......)
表适配器调用存储过程,将 sql 位字段设置为适当的布尔值。