【问题标题】:Why dropdownlist is getting assigned with wrong value?为什么下拉列表被分配了错误的值?
【发布时间】:2016-01-08 12:00:11
【问题描述】:

我将从DataTable 返回的值分配给dropdownlist,但它只选择第一个值-1。为什么?

ddlBPS.SelectedValue = r["ServiceInfoInitialBPS"].ToString();

数据表和db中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

【问题讨论】:

    标签: c# asp.net c#-4.0 datatable dropdown


    【解决方案1】:

    我假设没有找到值6,因为您使用了06 中的前导零。如果它是回发,你会得到一个异常,但因为它是初始加载,所以没有什么(所以第一个)项目被“选中”。

    MSDN:

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

    一种方式,用前导零填充它:

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

    或者(假设是int):

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

    【讨论】:

    • 太棒了。谢谢先生。希望我能接受 2 个答案,但首先看到了一个
    【解决方案2】:

    在来自database 的值之前附加"0"。这是一个string 值而不是int 所以它应该完全带有value 的选项。

    ddlBPS.SelectedValue = "0" + r["ServiceInfoInitialBPS"].ToString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多