Comment obtenir une valeur nulle à la base de données une case à cocher dans gridview

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

  •  23-08-2019
  •  | 
  •  

Question

J'ai une case à cocher dans gridview.

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

La fonction GetStatus est la suivante

  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

Mais si l'état vient comme nul de base de données, une erreur est à venir comme System.DBNull ne peut pas être jeté à object.If nul vient de la base de données que je veux obtenir case cochée fausse.

Était-ce utile?

La solution

Vous pouvez vérifier DBNull premier:

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

Autres conseils

Utilisez la fonction TypeOf pour vérifier si le type d'entrée si une valeur booléenne. Si ce n'est pas seulement return 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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top