выпадающий список mvc?

IEnumerable<DeliveryRunRecord> deliveries = _deliveryRunService.GetAll();
List<SelectListItem> listOfDeliveryRuns = deliveries.Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text = x.Name,
                Selected = "Select".ToString()
            }).ToList();

Хотели бы, чтобы «Выбрать» появлялось до выбора раскрывающегося списка, но было бы недоступно при нажатии на него, позволяя пользователю только выбирать значения в доставке ??


person John    schedule 23.09.2013    source источник
comment
вам нужно было бы сделать с javascript, вы пробовали это?   -  person DavidB    schedule 23.09.2013
comment
нет, есть идеи?   -  person John    schedule 23.09.2013
comment
Рискуя показаться бесполезным, вы можете выполнить поиск в Google, в основном вы запускаете функцию при выборе выбора, которая удалит эту опцию.   -  person DavidB    schedule 23.09.2013


Ответы (3)


Я думаю, вам нужен еще один элемент для выбора по умолчанию, например:

(Этот подход требует включения пространства имен System.Linq)

SelectListItem defaultItem = new SelectListItem 
{ 
    Selected = true, 
    Text = "Select", 
    Value = "NONE" 
};
List<SelectListItem> listOfDeliveryRuns = deliveries
    .Select(x => new SelectListItem
    {
        Value = x.Id.ToString(),
        Text = x.Name,
        Selected = false
    })
    .ToList()
    .Insert(0, defaultItem);
person eeee    schedule 23.09.2013

Вероятно, вы также можете сделать то, о чем просите, в своем .cshtml.

@Html.DropDownList("DeliveryId", new SelectList(ViewBag.deliveries as System.Collections.IEnumerable, "Key", "Value"), "--Select--")

В приведенном выше примере будет отображаться раскрывающийся список с «--Select--» в качестве элемента, выбранного по умолчанию. Я только что скопировал образец, в котором использовался словарь со значениями вашего элемента, и он был передан в качестве параметра через ViewBag.

person Muthu    schedule 24.09.2013

Выбранное свойство для SelectListItem имеет логический тип, поэтому вы не можете назначить строку, она должна быть ложной или истинной.

Но то, чего вы хотите добиться, можно просто сделать на представлении. @Html.DropDownList("dropdown1", новый SelectList(ViewBag.deliveries, "Value", "Text", 0), "пожалуйста, выберите", new { onchange = "form.submit(); "})

Обратите внимание на четвертый параметр метода DropDownList, он ноль.

Надеюсь, это поможет.

person Deep    schedule 20.02.2015