Предположим, у вас есть 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>