I have got an enumeration in C# ie something like Category.cs.
In a dropdownlist we are binding values.
So if the user selects some specific value in dropdown it will hide one div.
So i want to get the enumeration value in javascript ie want to pare the enumeration value with one selected value in javascript.
Mahesh
I have got an enumeration in C# ie something like Category.cs.
In a dropdownlist we are binding values.
So if the user selects some specific value in dropdown it will hide one div.
So i want to get the enumeration value in javascript ie want to pare the enumeration value with one selected value in javascript.
Mahesh
Share Improve this question edited Apr 4, 2011 at 11:21 user447356 asked Apr 4, 2011 at 10:33 Mahesh KPMahesh KP 6,45613 gold badges53 silver badges71 bronze badges2 Answers
Reset to default 2Suppose you have such enum
with numeric values:
public enum Colors
{
Yellow = 1,
Red,
Blue,
Green,
Purple
}
First of all, in the code behind (Page_Load event) register JavaScript code that will build client side structure that hold the same data:
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);
Now arrColors
is JS variable with both keys and values of your enum
.
To use it, have such code for example:
<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>
And the drop down should look like this:
<select onchange="SelectionChanged(this);">
<option>Select..</option>
<option value="Yellow">Yellow</option>
<option value="Green">Green</option>
</select>
System.Enum.GetNames(typeof(yourenumerationtype))
- returns an array of strings, which represents enumeration items' names