Frage

ich habe eine Checkbox in gridview.

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

Die Funktion GetStatus ist wie folgt

  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

Aber wenn Status als null aus der Datenbank kommt dann ein Fehler kommt als System.DBNull nicht object.If null gegossen werden kann, ist aus der Datenbank kommen möchte ich Checkbox checkt falsch.

War es hilfreich?

Lösung

Sie können für DBNull überprüfen Sie zuerst:

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

Andere Tipps

Mit der TypeOf Funktion, wenn der Eingabetyp, wenn ein boolean überprüfen. Wenn es nicht gerade return false ist.

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top