ASP.NET Verbindlich, integer zu CheckBox Aktiviert Feld

Habe ich die folgende ListView-Element-Vorlage, in die ich versuche mich zu binden integer-Wert Checked - Eigenschaft der CheckBox.

IsUploaded Wert enthält nur 0 und 1...

<asp:ListView ID="trustListView" runat="server">
    <ItemTemplate>
        <asp:CheckBox ID="isUploadedCheckBox" runat="server"
            Checked='<%# Bind("IsUploaded") %>' />
    </ItemTemplate>
</asp:ListView>

Aber ASP.NET beschwert sich, dass

Exception Details: System.InvalidCastException: Sepcified cast ist nicht gültig

Obwohl Sie folgenden code verwenden DataBinder.Eval() funktioniert,

Brauche ich ein 2-Wege-Bindung, so müssen verwenden Bind().

<asp:CheckBox ID="isUploadedCheckBox2" runat="server"
    Checked='<%# Convert.ToBoolean(
        DataBinder.Eval(Container.DataItem, "IsUploaded"))) %>' />

Wie kann ich umwandeln 0 und 1 zu booleschen mit Bind()?


[ANTWORT]
Ich habe erweiterte auto-generated Art durch partielle Klasse wird durch das hinzufügen einer neuen Eigenschaft erwähnt in der Antwort von Justin

  • Macht "IsUploaded" etwas oder andere boolean-Datentyp statt einer int-eine option?
  • ist ein bit.
  • Welche Art von Datenquelle sind Sie verbindlich? Binden Sie ein Markierungsfeld, um ein bisschen mit einem objectdatasource deutete auf einen Tisch-adapter funktioniert mit keine Fehler für mich.
  • Es ist eine automatisch generierte Typ von Entity framework.
  • Ich weiß nicht, warum ich nicht Upvote. Anyways, tut mir Leid, nicht in der Lage zu Stimme all die Super Antworten hier. Es sagt, dass ich nicht upvote, es sei denn, die Antworten sind bearbeitet??? ...
  • hmmmm, seltsam. das macht nicht viel Sinn. Ich würde gerne mein edit beantworten wenn, öffnet sich eine Flut von Stimmen. 🙂
  • Vielen Dank für die Bearbeitung. Ich war in der Lage, upvote.

InformationsquelleAutor Sung M. Kim | 2009-10-13
Schreibe einen Kommentar