如何使下拉列表在下拉列表中显示选定值而不是底部?

时间:2013-11-05 21:47:08

标签: c# asp.net css

编辑:这种情况发生在Chrome中,但不是IE

这是一个如此愚蠢,毫无用处的小问题,但我有一位客户询问以下是否可行。所以现在让我知道了。

我在使用C#代码隐藏的aspx页面中创建了一个DropDownList(但是,我的示例在此处没有代码隐藏,以简化我的问题)。

请参阅我的示例DropDownList。我在此列表中有46个选项,请参阅: A B 。假设用户选择列表中间范围内的项目 - (参见: C )。当用户返回DropDown时,它会在底部显示所选值(请参阅: C )。

有没有办法告诉\强制DropDownList在可用值列表的 TOP 处显示所选索引\值\项目(请参阅: D )?

Can you make a dropdown work like D instead of C?

此示例使用非常简单的代码:

<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 更有利。 ?

1 个答案:

答案 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