Как получить значения перечисления в SelectList

В MySQL существует функция, GROUP_CONCAT () , который позволяет Вам связывать значения от нескольких строк. Пример:

SELECT 1 AS a, GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ', ') AS people 
FROM users 
WHERE id IN (1,2,3) 
GROUP BY a

66
задан GEOCHET 11 January 2012 в 23:52
поделиться

4 ответа

Чтобы получить значение перечисления, вам нужно привести перечисление к его базовому типу:

Value = ((int)i).ToString();
27
ответ дан 24 November 2019 в 14:46
поделиться

Прошло некоторое время с тех пор, как мне пришлось сделай это, но я думаю, что это должно сработать.

var directions = from Direction d in Enum.GetValues(typeof(Direction))
           select new { ID = (int)d, Name = d.ToString() };
return new SelectList(directions , "ID", "Name", someSelectedValue);
83
ответ дан 24 November 2019 в 14:46
поделиться

, возможно, не является точным ответом на вопрос, но в сценариях CRUD я обычно реализую что-то вроде этого:

private void PopulateViewdata4Selectlists(ImportJob job)
{
   ViewData["Fetcher"] = from ImportFetcher d in Enum.GetValues(typeof(ImportFetcher))
                              select new SelectListItem
                              {
                                  Value = ((int)d).ToString(),
                                  Text = d.ToString(),
                                  Selected = job.Fetcher == d
                              };
}

PopulateViewdata4Selectlists вызывается перед View ("Создать") и "Просмотр" ("Редактировать"), затем и в представлении:

<%= Html.DropDownList("Fetcher") %>

и все ..

3
ответ дан 24 November 2019 в 14:46
поделиться

Это то, что я только что сделал, и лично я считаю его сексуальным:

 public static IEnumerable<SelectListItem> GetEnumSelectList<T>()
        {
            return (Enum.GetValues(typeof(T)).Cast<T>().Select(
                enu => new SelectListItem() { Text = enu.ToString(), Value = enu.ToString() })).ToList();
        }

Я собираюсь сделать кое-что для перевода, чтобы Value = enu.ToString () где-то что-то вызвал.

32
ответ дан 24 November 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: