如何从数据库中获取null值到gridview中的复选框

时间:2009-04-06 08:30:28

标签: asp.net vb.net

我在gridview中有一个复选框。

 <asp:CheckBox  ID="chkStatus"
runat="server"
 Checked='<%#GetStatus(Eval("VaccinationCompletedStatus"))
 %>'/>

GetStatus函数如下

  Public Function GetStatus(ByVal objStatus As Object) As Boolean
        If objStatus = True Then
            Return True
        ElseIf objStatus = False Then
            Return False
        Else
            Return False
        End If

    End Function

但是如果Status从数据库变为null,则会出现一个错误,因为System.DBNull无法强制转换为object.If null来自数据库我希望复选框选中false。

3 个答案:

答案 0 :(得分:3)

您可以先检查DBNull:

If DBNull.Value.Equals(objStatus) Then
  Return False
Else
  Return objStatus
End If

答案 1 :(得分:2)

使用TypeOf函数检查输入类型是否为布尔值。如果它不仅仅是返回false。

If TypeOf objStatus Is Boolean Then
  Your code here
Else
  Return False
End If

答案 2 :(得分:1)

<asp:TemplateField HeaderText="foo" >
    <ItemTemplate>    
        <asp:CheckBox  runat="server"
                    Checked='<%# Eval("foo").GetHashCode() == 1 %>'
                    Enabled="false"
                    Visible='<%# Eval("foo").GetType() == typeof(Boolean) %>' />
    </ItemTemplate>
</asp:TemplateField>