【发布时间】:2010-12-06 09:24:16
【问题描述】:
我有一个以下 ListView 项目模板,我在其中尝试将整数值绑定到 CheckBox 的 Checked 属性。
IsUploaded 值只包含 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"))) %>' />
如何使用 Bind() 将 0 和 1 转换为布尔值?
[回答] 通过添加answer by Justin 中提到的新属性,我通过部分类扩展了自动生成的类型
【问题讨论】:
-
是否将“IsUploaded”设为位或其他布尔数据类型而不是 int 选项?
-
@kscott:“IsUploaded”有点意思。
-
你要绑定什么样的数据源?使用指向表适配器的 objectdatasource 将复选框绑定到位对我来说没有错误。
-
@kscott:它是实体框架自动生成的类型。
-
我不知道为什么我不能投票。无论如何,很抱歉无法在这里投票给所有好的答案。它说我不能投票,除非答案是编辑??? ...
标签: asp.net data-binding listview checkbox bind