开发者

How to use C# enumeration values in JavaScript

开发者 https://www.devze.com 2023-02-21 17:55 出处:网络
I have got an enumeration in C# ie something like Category.cs. In a dropdownlist we are binding values.

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 ge开发者_如何学Pythont the enumeration value in javascript ie want to compare the enumeration value with one selected value in javascript.

Mahesh


Suppose 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

0

精彩评论

暂无评论...
验证码 换一张
取 消