Come ottenere un valore nullo dal database in una casella di controllo GridView
Domanda
ho una casella di controllo nella GridView.
<asp:CheckBox ID="chkStatus"
runat="server"
Checked='<%#GetStatus(Eval("VaccinationCompletedStatus"))
%>'/>
La funzione GetStatus è la seguente
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
Ma se Stato è venuta come nullo dalla banca dati poi un errore è venuta come System.DBNull non può essere lanciato a object.If nulla è venuta dal database voglio ottenere casella selezionata falso.
Soluzione
Si potrebbe verificare per DBNull prima:
If DBNull.Value.Equals(objStatus) Then
Return False
Else
Return objStatus
End If
Altri suggerimenti
Utilizzare la funzione TypeOf per verificare se il tipo di ingresso, se un valore booleano. Se non è solo 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow