Cómo obtener un valor nulo a partir de la base de datos a una casilla de verificación en gridview

StackOverflow https://stackoverflow.com/questions/720613

  •  23-08-2019
  •  | 
  •  

Pregunta

tengo una casilla de verificación en el gridview.

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

La función GetStatus es como sigue

  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

Pero si el estado está llegando como nulo desde la base de datos después de un error viene como System.DBNull no se puede convertir a object.If nula viene de la base de datos quiero conseguir casilla marcada falsa.

¿Fue útil?

Solución

Se puede comprobar si hay DBNull primero:

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

Otros consejos

Utilice la función TypeOf para comprobar si el tipo de entrada si un booleano. Si no se trata sólo devuelve falso.

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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top