Как использовать значения перечисления C # в JavaScript - PullRequest
2 голосов
/ 04 апреля 2011

У меня есть перечисление в C #, то есть что-то вроде Category.cs.
В выпадающем списке мы связываем значения.
Поэтому, если пользователь выбирает какое-то конкретное значение в раскрывающемся списке, он скрывает один элемент div.
Поэтому я хочу получить значение перечисления в javascript, т.е. хочу сравнить значение перечисления с одним выбранным значением в javascript.

Махеш

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Предположим, у вас есть enum с числовыми значениями:

public enum Colors
{
   Yellow = 1,
   Red,
   Blue,
   Green,
   Purple
}

Прежде всего, в коде (событие Page_Load) зарегистрируйте код JavaScript, который будет создавать структуру на стороне клиента, содержащую те же данные:

string strJS = string.Format("var arrColors = {{{0}}}; ",
    string.Join(", ", Enum.GetNames(typeof(Colors)).ToList().ConvertAll(key =>
{
    return string.Format("{0}: {1}", key, (int)((Colors)Enum.Parse(typeof(Colors), key)));
}).ToArray()));
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "enum", strJS, true);

Теперь arrColors - это переменная JS с ключами и значениями вашего enum.

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

<script type="text/javascript">
   function SelectionChanged(oDDL) {
      var selectedValue = oDDL.value;
      var enumValue = arrColors[selectedValue] || "N/A";
      alert("enum value for '" + selectedValue + "' is: " + enumValue);
   }
</script>

И выпадающий список должен выглядеть так:

<select onchange="SelectionChanged(this);">
    <option>Select..</option>
    <option value="Yellow">Yellow</option>
    <option value="Green">Green</option>
</select>
0 голосов
/ 04 апреля 2011

System.Enum.GetNames(typeof(yourenumerationtype)) - возвращает массив строк, который представляет имена элементов перечисления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...