编辑:这种情况发生在Chrome中,但不是IE
这是一个如此愚蠢,毫无用处的小问题,但我有一位客户询问以下是否可行。所以现在让我知道了。
我在使用C#代码隐藏的aspx页面中创建了一个DropDownList(但是,我的示例在此处没有代码隐藏,以简化我的问题)。
请参阅我的示例DropDownList。我在此列表中有46个选项,请参阅: A 和 B 。假设用户选择列表中间范围内的项目 - (参见: C )。当用户返回DropDown时,它会在底部显示所选值(请参阅: C )。
有没有办法告诉\强制DropDownList在可用值列表的 TOP 处显示所选索引\值\项目(请参阅: D )?
此示例使用非常简单的代码:
<asp:UpdatePanel ID="DropDownTestUpdatePanel" runat="server">
<ContentTemplate>
<asp:Panel id="DropDownTestPanel" runat="server">
<asp:DropDownList id="ColorList"
AutoPostBack="True"
runat="server">
<asp:ListItem Value="1 "> 1 </asp:ListItem>
<asp:ListItem Value="2 "> 2 </asp:ListItem>
<asp:ListItem Value="3 "> 3 </asp:ListItem>
<asp:ListItem Value="4 "> 4 </asp:ListItem>
<asp:ListItem Value="5 "> 5 </asp:ListItem>
<asp:ListItem Value="6 "> 6 </asp:ListItem>
<asp:ListItem Value="7 "> 7 </asp:ListItem>
<asp:ListItem Value="8 "> 8 </asp:ListItem>
<asp:ListItem Value="9 "> 9 </asp:ListItem>
<asp:ListItem Value="0 "> 0 </asp:ListItem>
<asp:ListItem Value="10"> 10 </asp:ListItem>
<asp:ListItem Value="11"> 11 </asp:ListItem>
<asp:ListItem Value="12"> 12 </asp:ListItem>
<asp:ListItem Value="13"> 13 </asp:ListItem>
<asp:ListItem Value="14"> 14 </asp:ListItem>
<asp:ListItem Value="15"> 15 </asp:ListItem>
<asp:ListItem Value="16"> 16 </asp:ListItem>
<asp:ListItem Value="17"> 17 </asp:ListItem>
<asp:ListItem Value="18"> 18 </asp:ListItem>
<asp:ListItem Value="19"> 19 </asp:ListItem>
<asp:ListItem Value="20"> 20 </asp:ListItem>
<asp:ListItem Value="21"> 21 </asp:ListItem>
<asp:ListItem Value="22"> 22 </asp:ListItem>
<asp:ListItem Value="23"> 23 </asp:ListItem>
<asp:ListItem Value="24"> 24 </asp:ListItem>
<asp:ListItem Value="25"> 25 </asp:ListItem>
<asp:ListItem Value="26"> 26 </asp:ListItem>
<asp:ListItem Value="27"> 27 </asp:ListItem>
<asp:ListItem Value="28"> 28 </asp:ListItem>
<asp:ListItem Value="29"> 29 </asp:ListItem>
<asp:ListItem Value="30"> 30 </asp:ListItem>
<asp:ListItem Value="31"> 31 </asp:ListItem>
<asp:ListItem Value="32"> 32 </asp:ListItem>
<asp:ListItem Value="33"> 33 </asp:ListItem>
<asp:ListItem Value="34"> 34 </asp:ListItem>
<asp:ListItem Value="35"> 35 </asp:ListItem>
<asp:ListItem Value="36"> 36 </asp:ListItem>
<asp:ListItem Value="37"> 37 </asp:ListItem>
<asp:ListItem Value="38"> 38 </asp:ListItem>
<asp:ListItem Value="39"> 39 </asp:ListItem>
<asp:ListItem Value="40"> 40 </asp:ListItem>
<asp:ListItem Value="41"> 41 </asp:ListItem>
<asp:ListItem Value="42"> 42 </asp:ListItem>
<asp:ListItem Value="43"> 43 </asp:ListItem>
<asp:ListItem Value="44"> 44 </asp:ListItem>
<asp:ListItem Value="45"> 45 </asp:ListItem>
<asp:ListItem Value="46"> 46 </asp:ListItem>
</asp:DropDownList>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
我搜索并搜索了......并在网上搜索了答案。但是当你不能很好地说出问题时,很难找到问题的答案。
提前感谢您提供任何帮助。
为了清晰起见,编辑重新措辞:
假装您是一整天都在使用一个DropDownList的用户。例如,您从订单中列出的客户编号获得订单(请参阅:上图)。每次移动到下一个订单时,都必须单击DropDownList中的客户编号。好吧,一旦你到达#20客户(见上面的 A ),你现在必须点击DropDown并滚动\ move \点击一下来得到你的下一个号码。 (我知道,我知道,它会专注于加载,因此可以通过箭头键或键入移动列表来加快速度但是......它是客户 - 想要whaddya吗?)。
无论如何,当你点击它以选择你的下一个客户时,你可以看到让DropDownList的行为如上面的 D 而不是 C 更有利。 ?
答案 0 :(得分:3)
我有类似的问题。这解决了我的问题:
protected void Page_PreRender(object sender, EventArgs e)
{
var itemIndex = DropDownList1.SelectedIndex;
var item = DropDownList1.Items[itemIndex];
DropDownList1.Items.RemoveAt(itemIndex);
DropDownList1.Items.Insert(0, new ListItem(item.Text, item.Value));
}
来源:
How to move selected value of drop down list to first position in the list of items by using C#.net