Ho un modello di articolo ListView seguente, in cui sto tentando di associare il valore intero alla proprietà Checked
di CheckBox.ASP.NET Binding integer al campo CheckBox
IsUploaded
valore contiene solo 0 e 1 ...
<asp:ListView ID="trustListView" runat="server">
<ItemTemplate>
<asp:CheckBox ID="isUploadedCheckBox" runat="server"
Checked='<%# Bind("IsUploaded") %>' />
</ItemTemplate>
</asp:ListView>
Ma ASP.NET lamenta che
Dettagli eccezione: System.InvalidCastException: Sepcified cast non è valido
Anche se il seguente codice che utilizza DataBinder.Eval()
funziona,
I nee d per avere un binding a 2 vie, quindi è necessario utilizzare Bind()
.
<asp:CheckBox ID="isUploadedCheckBox2" runat="server"
Checked='<%# Convert.ToBoolean(
DataBinder.Eval(Container.DataItem, "IsUploaded"))) %>' />
Come posso convertire i 0 e 1. a booleano utilizzando Bind()
?
[RISPOSTA] Ho esteso tipo auto-generata attraverso classe parziale con l'aggiunta di una nuova proprietà menzionato nel answer by Justin
Sta rendendo "IsUploaded" un bit o un altro tipo di dati booleano invece di un'opzione int? – kscott
@kscott: "IsUploaded" è un po '. – Sung
A quale tipo di datasource si sta vincolando? Associare una casella di controllo a un bit utilizzando una objectdatasource che punta a un adattatore di tabella funziona senza errori per me. – kscott