【发布时间】:2013-07-17 15:40:10
【问题描述】:
我有一个用于插入数据库的大 DetailsView 表单,并且我有很多 (10+) 个复选框字段。其中许多是不可见的,因为我们不希望这些字段被激活以提交数据(但将来可能会被激活)。
如何首先将所有复选框的默认值设置为“false”(未选中)?截至目前,它们被作为空值插入,并且与其他所有内容都不能很好地配合。
到目前为止,我已将此代码作为 DetailsView 的 onDataBound 事件运行:
Dim row As DetailsViewRow
For Each row In DetailsView1A.Rows
If row.Cells.GetType() = GetType(CheckBox) Then
Dim tempCheckbox As CheckBox = CType(row.Cells(1).Controls(0), CheckBox)
If tempCheckbox Is DBNull.Value Then
tempCheckbox.Checked = False
End If
End If
Next
但是,所有复选框仍以空值形式提交。我做错了什么?
【问题讨论】:
-
如果删除
If tempCheckbox Is DBNull.Value Then条件会发生什么? -
@jadarnel27 我刚试过,也没用。如果我使用 Visible='true' 将所有复选框放入页面中,那么会起作用。但是,我不希望这些字段存在,但仍然隐藏的字段保留为空。
-
这不是编程答案,但您可以在您正在使用的特定 RDBMS(大概是 SQL Server)中将这些特定列的默认值设置为 false。那样的话,如果没有指定值,你会得到“false”。
-
@jadarnel27 不幸的是,我只是公司的实习生,我的经理真的不想更改数据库的结构,因为可能会对报告服务、其他连接等产生副作用。
-
啊,有道理。我想到了一种可以解决此问题的方法(我将其发布为答案)。
标签: asp.net checkbox insert default detailsview