如何将一个特定的下拉选择放在首位

本文关键字:放在首位 选择 一个 | 更新日期: 2023-09-27 18:16:11

我有一个下拉菜单和元素在UI中按外观顺序显示

  1. 页脚
  2. 鼓励性

我希望下拉菜单在UI的顶部位置显示Header。

  1. 页脚
  2. 鼓励性

UI代码:

<select id="simTextEditorSelection" onchange="ShowTextEditorBasedOnSelection();"  style="float:right;">
    @foreach (PageInfoMV anItemForEditor in Model.ItemContents)
    {
        <option value="@anItemForEditor.ItemId">@anItemForEditor.ItemDisplayText</option>
    }

我可以在上面的代码中以某种方式提到将特定的ID显示为默认(TOP Position)吗?

模型。ItemContents:

public List<PageInfoMV> ItemContents
{
    get
    {
        if (this.itemContents == null) { this.itemContents = new List<PageInfoMV>(); }
        if (!this.itemContents.Any(x => x.ItemId == Constants.HEADER_ID))
        {
            this.itemContents.Add(new PageInfoMV() { ItemId = Constants.HEADER_ID, ItemDisplayText = Constants.HEADER_DISPLAY_TEXT });
        }
        if (!this.itemContents.Any(x => x.ItemId == Constants.FOOTER_ID))
        {
            this.itemContents.Add(new PageInfoMV() { ItemId = Constants.FOOTER_ID, ItemDisplayText = Constants.FOOTER_DISPLAY_TEXT });
        }
        return this.itemContents;
    }
    set { this.itemContents = value; }
}

Constants.cs

 public static readonly string HEADER_ID = "-1000";
 public static readonly string FOOTER_ID = "-1001";

它只是一个代码片段。如果需要更多的代码块,请让我知道。谢谢。

如何将一个特定的下拉选择放在首位

如果你的Header选项值是常量,那么你应该在你的Header上设置。

<select id="simTextEditorSelection">
   <option value="Footer">Footer</option>
   <option value="Header"> Header</option>
   <option value="Blabla">Blabla</option>
</select>
 <script>
      var val1=$("#simTextEditorSelection").find('option:eq(0)').val();
       $('#simTextEditorSelection option[value="Header"]').insertBefore('#simTextEditorSelectionoption[value="'+val1+'"]');
 </script>

var val1=$("#simTextEditorSelection").find('option:eq(0)').val();
$('#simTextEditorSelection option[value="Header"]').insertBefore('#simTextEditorSelection option[value="'+val1+'"]');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="simTextEditorSelection">
   <option value="Footer">Footer</option>
   <option value="Header"> Header</option>
   <option value="Blabla">Blabla</option>
</select>

如果你对ItemContents有控制权,我建议添加一个任意值来排名你的内容值;例如,header将为0,footer将为1等。然后,您可以使用它在视图中执行OrderBy():

@foreach (PageInfoMV anItemForEditor in Model.ItemContents.OrderBy(ic => ic.OrderValue))
{
  ...
}
编辑:

剩余项目的可选附加排序:

@foreach (PageInfoMV anItemForEditor in Model.ItemContents.OrderBy(ic => ic.OrderValue)
.ThenBy(ic => ic.SomeOtherValueMaybeName))
{
  ...
}