我正在尝试为下拉菜单添加标题。 问题是如果数据为空,它会自动更新为0。 创建数据行时不会发生这种情况。 日期类型为int32。 有趣的是,我可以插入null,但我无法更新为null。
我的解决方案是添加两个列表项。 一个是值=“”。这是初始数据。 (创建) 另一个是值=“0”。这是在更新后。 然而,这不是一个很好的解决方案。
当我更新数据时,整数如何存储0而不是null? 在创建行时,似乎可以存储null ...
<asp:DropDownList ID="addl" runat="server" SelectedValue='<%# Bind("a") %>'>
<asp:ListItem Value="" Text="-Select-"></asp:ListItem>
<asp:ListItem Value="1">test1</asp:ListItem>
<asp:ListItem Value="2">test2</asp:ListItem>
<asp:ListItem Value="0" Text="-Select-"></asp:ListItem>
</asp:DropDownList>
如果数据类型是整数,那么下拉菜单标题的最佳解决方案是什么? 如果它是字符串,我可以简单地添加value =“”并且只运行时间。 如果整数为零,则整数存储为0,并且我还必须创建null以避免编辑模式中的错误。
答案 0 :(得分:2)
Int32
不是Nullable类型,默认情况下等于0(即使未初始化)。尝试使用Nullable的Int32?
,或使用其他索引来指示Create选项。
答案 1 :(得分:0)
我不太确定您要更新的int
是什么,但如果它是您可以控制的变量,则可以考虑将其从标准int
更改为可以为int
int i;
1}}。这可以像改变这一样简单:
int? i;
到此:
{{1}}