Asp.net
ASP.NET 將整數綁定到 CheckBox 的 Checked 欄位
我有一個以下 ListView 項目模板,我在其中嘗試將整數值綁定到
CheckedCheckBox 的屬性。
IsUploadedvalue 只包含 0 和 1…<asp:ListView ID="trustListView" runat="server"> <ItemTemplate> <asp:CheckBox ID="isUploadedCheckBox" runat="server" Checked='<%# Bind("IsUploaded") %>' /> </ItemTemplate> </asp:ListView>但是 ASP.NET 抱怨說
異常詳細資訊:System.InvalidCastException:指定轉換無效
儘管使用以下程式碼
DataBinder.Eval()有效, 但
我需要有 2 路綁定,因此需要使用Bind().<asp:CheckBox ID="isUploadedCheckBox2" runat="server" Checked='<%# Convert.ToBoolean( DataBinder.Eval(Container.DataItem, "IsUploaded"))) %>' />如何使用 0 和 1 將布爾值轉換為布爾值
Bind()?$$ ANSWER $$ 我通過添加賈斯汀的答案中提到的新屬性,通過部分類擴展了自動生成的類型
如果您願意更改類,請在類上添加一個布爾屬性
public bool IsUploadedBoolean { get { return IsUploaded != 0; } set { IsUploaded = value ? 1 : 0; } }如果沒有,您可能會成功使用 TypeConverter:
- 創建一個自定義TypeConverter,它將處理 0 和 1 到布爾轉換
- 將TypeConverterAttribute粘貼在 IsUploaded 屬性上,以將 .NET 定向到您的自定義類型轉換器。
向您的類添加一個進行轉換的屬性怎麼樣?
public bool IsUploadedBool { get { return IsUploaded == 1; } }然後綁定到這個
IsUploadedBool屬性,而不是直接綁定到底層的 INT。馬克