为什么dropdownlist被赋予了错误的值?

时间:2016-01-08 12:00:11

标签: 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">
                                                            <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

2 个答案:

答案 0 :(得分:1)

我认为找不到值6,因为您在06中使用前导零。如果它是一个回发你会得到一个例外,但因为它是初始加载没有(所以第一个)项被“选中”。

MSDN

  

ArgumentOutOfRangeException:所选值不在可用值和视图列表中   已加载状态或其他状态(已执行回发)。   有关详细信息,请参阅“备注”部分。

单向填充前导零:

ddlBPS.SelectedValue = r["ServiceInfoInitialBPS"].ToString().PadLeft(2, '0');

或(假设它是int):

ddlBPS.SelectedValue = r.Field<int>("ServiceInfoInitialBPS").ToString("D2");

答案 1 :(得分:0)

在来自"0"的值之前附加database。这是一个string值,而不是int,因此它应该完全包含value选项。

ddlBPS.SelectedValue = "0" + r["ServiceInfoInitialBPS"].ToString();
相关问题