【问题标题】:DetailsView Insert default value for checkboxesDetailsView 为复选框插入默认值
【发布时间】: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


【解决方案1】:

尝试处理 ItemInserting 事件,并更新 DetailsViewInsertEventArgs 对象的“Values”集合。这些是将传递给数据源的插入语句的值。

检查每个隐藏的 CheckBox 列的“值”条目并将其更新为 False。这是一个例子:

Sub CustomerDetail_ItemInserting(ByVal sender As Object, ByVal e As DetailsViewInsertEventArgs)
    e.Values("yourFieldName") = False
End Sub

请注意,“yourFieldName”将是 DetailsView 连接到的数据源中列的名称。

另外,False 可能需要是一个字符串,我不确定这实际上是如何传递的:

e.Values("yourFieldName") = "False"

另一个想法:如果上述方法不起作用(由于某种原因,那些隐藏的复选框在 Values 集合中没有条目),我不会在服务器端隐藏它们 - 使用 CSS 或 JavaScript 隐藏它们。换句话说,不要在 CheckBox 上使用 Visible="False",而是使用 CSS 属性 display:none

【讨论】:

  • 我明天先试试这个。无论如何要遍历 DetailsView 吗?最好循环,检查控件是否为复选框,如果是,则设置为 false。我离开后需要较少的维护以防万一,因此如果他们想要激活某些字段,他们不必手动删除行。顺便感谢大家的帮助!
  • @user2516794 这对你有用吗?仅供参考 - 你可能可以做你所描述的事情,但在那种情况下它会很时髦。您可能希望将您的问题中的相同循环放在我写的这个 Sub 中。然后,在该循环内,根据您在循环中找到的可见 CheckBox 检查值。这有意义吗?
猜你喜欢
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2013-01-14
  • 2015-03-24
相关资源
最近更新 更多