8

编辑:这发生在 Chrome 但不是 IE

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

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

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

有没有办法告诉 \ 强制 DropDownList在可用值列表的顶部显示选定的索引 \ 值 \ 项目(参见: D)?

你能像 D 而不是 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),您现在必须单击下拉菜单并滚动 \ 移动 \ 单击一个以获取下一个号码。(我知道,我知道,它设置为专注于负载,因此使用箭头键或键入移动列表确实可以更快,但是......这是一个客户 - 你想要什么?)。
无论如何,您可以看到让 DropDownList 表现得像上面的D而不是C上面当你去点击它来选择你的下一个客户,对吧?

4

1 回答 1

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));
}

资源:

如何使用 C#.net 将下拉列表的选定值移动到项目列表中的第一个位置

于 2013-11-05T22:13:54.977 回答