将选项列表附加到焦点选择

时间:2014-01-22 21:55:11

标签: jquery asp.net-mvc-3 razor

我有这些非常大的下拉列表(1500)项目。我必须在单个页面上使用大量这些大型下拉列表(每个列表1500个项目,每个对象4个列表,每页150个对象)。所有这些列表都是相同的。

不幸的是客户端要求这种结构,所以我正在寻找一种好方法来创建4个下拉列表并根据他们关注的选择框重用它们。

正在使用剃刀创建列表:

var list = ViewData["List"] as IEnumerable<SelectListItem>;
IEnumerable<SelectListItem> selectEnumerable = null;

if(list != null)
{
    selectEnumerable = list.Select(x => new SelectListItem
    {
        Text = x.Text,
        Value = x.Value.ToString()
    }).OrderBy(x => Convert.ToInt32(x.Value));   
}

@Html.DropDownList("List", selectEnumerable)

我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果你想在客户端做,那么一种方法是使用jquery的clone()

所以你要做的就是加载你问题中的第一个select盒子服务器端。然后创建另外3个select列表,但将它们留空,并为它们提供相同的class属性,例如“我的列表级”。最后,在您的脚本文件中,您可以创建一个在启动时运行一次的函数。

<强> JS

  function LoadSelectLists()
  {
    var list = $("#sel1 > option").clone();
    $('.my-list-class').append(list);
  }

<强> HTML

<select id="sel1">
  <option value="a">opt1</option>
  <option value="b">opt2</option>
  <option value="c">opt3</option>
</select>
<select id="sel2" class="my-list-class"></select>
<select id="sel3" class="my-list-class"></select>
<select id="sel4" class="my-list-class"></select>

小提琴:http://jsfiddle.net/2WDcz/