Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么dropdownlist被分配了错误的值?_C#_Asp.net_C# 4.0_Datatable_Dropdown - Fatal编程技术网

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();