C# 为什么dropdownlist被分配了错误的值?
我正在将从C# 为什么dropdownlist被分配了错误的值?,c#,asp.net,c#-4.0,datatable,dropdown,C#,Asp.net,C# 4.0,Datatable,Dropdown,我正在将从DataTable返回的值分配到dropdownlist,但它只选择第一个值-1。为什么? ddlBPS.SelectedValue = r["ServiceInfoInitialBPS"].ToString(); 数据表和数据库中ServiceInfoInitialBPS的值为6 <asp:DropDownList ID="ddlBPS" runat="server" CssClass="form-control white">
DataTable
返回的值分配到dropdownlist
,但它只选择第一个值-1
。为什么?
ddlBPS.SelectedValue = r["ServiceInfoInitialBPS"].ToString();
数据表和数据库中ServiceInfoInitialBPS
的值为6
<asp:DropDownList ID="ddlBPS" runat="server" CssClass="form-control white">
<asp:ListItem Value="-1" Text="-Select-"></asp:ListItem>
<asp:ListItem Value="01" Text="01"></asp:ListItem>
<asp:ListItem Value="02" Text="02"></asp:ListItem>
<asp:ListItem Value="03" Text="03"></asp:ListItem>
<asp:ListItem Value="04" Text="04"></asp:ListItem>
<asp:ListItem Value="05" Text="05"></asp:ListItem>
<asp:ListItem Value="06" Text="06"></asp:ListItem>
<asp:ListItem Value="07" Text="07"></asp:ListItem>
<asp:ListItem Value="08" Text="08"></asp:ListItem>
<asp:ListItem Value="09" Text="09"></asp:ListItem>
<asp:ListItem Value="10" Text="10"></asp:ListItem>
<asp:ListItem Value="11" Text="11"></asp:ListItem>
<asp:ListItem Value="12" Text="12"></asp:ListItem>
<asp:ListItem Value="13" Text="13"></asp:ListItem>
<asp:ListItem Value="14" Text="14"></asp:ListItem>
<asp:ListItem Value="15" Text="15"></asp:ListItem>
<asp:ListItem Value="16" Text="16"></asp:ListItem>
<asp:ListItem Value="17" Text="17"></asp:ListItem>
<asp:ListItem Value="18" Text="18"></asp:ListItem>
<asp:ListItem Value="19" Text="19"></asp:ListItem>
<asp:ListItem Value="20" Text="20"></asp:ListItem>
<asp:ListItem Value="21" Text="21"></asp:ListItem>
<asp:ListItem Value="22" Text="22"></asp:ListItem>
</asp:DropDownList>
为什么呢?我已调试,但分配给它的值始终是
-1
我假设找不到值6
,因为您使用了06
中的前导零。如果是回发,您会得到一个异常,但由于它是初始加载,所以第一个项目不会被“选中”
:
ArgumentOutOfRangeException
:所选值不在可用值和视图列表中
已加载状态或其他状态(已执行回发)。
有关更多信息,请参阅备注部分
单向,用前导零填充:
ddlBPS.SelectedValue = r["ServiceInfoInitialBPS"].ToString().PadLeft(2, '0');
或者(假定它是一个int
):
ddlBPS.SelectedValue=r.Field(“ServiceInfoInitialBPS”).ToString(“D2”);
在来自数据库的值之前追加“0”
。它是一个字符串
值而不是int
,因此它应该完全带有值
的选项
ddlBPS.SelectedValue = "0" + r["ServiceInfoInitialBPS"].ToString();
伟大的谢谢,先生。我希望我能接受两个答案,但我先看到了那一个
ddlBPS.SelectedValue = "0" + r["ServiceInfoInitialBPS"].ToString();