我正在确定从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
。
答案 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();