我希望有人能回答这个问题。我把头发拉出来了!
我有DropDownList
,默认值为""从数据库中捕获NULL
"价值" DropDownList
的字段是varchar
这很好用。
但是,在保存记录时,该值将作为空字符串保留在数据库中。
重新绑定该记录后会抛出ArgumentOutOfRangeException
。
任何推荐的解决方
我目前正在使用以下绑定方法:
<asp:DropDownList ID="DestinationDropDownList" runat="server"
DataSourceID="CountryDataSource" DataTextField="Name"
DataValueField="CountryRegionCode" SelectedValue='<%#Bind("DestinationCountryCode")%>'
AppendDataBoundItems="True">
<asp:ListItem Text="Select..." Value=""></asp:ListItem>
</asp:DropDownList>
答案 0 :(得分:2)
发现问题:
数据库中的“国家/地区”值字段是固定长度,因此它尝试绑定到“”(3个空格),其中现有的ListItem
值仅为“”。
我将默认的ListItem值更改为“”,现在它可以正常工作。
答案 1 :(得分:0)
该区域可能是您在页面加载时绑定下拉列表。
将其绑定在if(!Page.IsPostback)
内,它应该可以正常工作
if (!IsPostBack)
{
//bin your dropdown here
}
我不知道天气会起作用,但你可以创建一个如下所示的属性
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set
{
if (value == String.Empty)
{
_myProperty = null;
}
else
{
_myProperty = value;
}
}
}