题
我有在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>
不隶属于 StackOverflow