我有在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

但是,如果状态即将从数据库中,然后一个错误来为System.DBNull不能转换到object.If空空从数据库来我想选中复选框假的。

有帮助吗?

解决方案

您可以检查的DBNull第一:

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

其他提示

使用TypeOf运算功能,以检查是否如果一个布尔输入类型。如果它不只是返回false。

If TypeOf objStatus Is Boolean Then
  Your code here
Else
  Return False
End If
<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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top