我在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。
答案 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>