මෙන්න සරල විසඳුමක් වන්නේ සේවාදායක පැත්තේ C # enum JSON වෙත අනුක්රමික කරන අතර ප්රති -ලය සේවාදායක පාර්ශවීය <select>
අංගයක් ජනගහනය කිරීමට භාවිතා කිරීමයි . මෙය සරල එනූම් සහ බිට්ෆ්ලැග් එනූම් සඳහා ක්රියා කරයි.
මම අවසාන සිට විසඳුම ඇතුළත් කර ඇති නිසා JSON වෙත C # enum අනුක්රමික කිරීමට කැමති බොහෝ අය එය <select>
පහළට වැටීම පිරවීම සඳහා භාවිතා කරනු ඇතැයි මම සිතමි .
මෙන්න:
උදාහරණ එනුම්
public enum Role
{
None = Permission.None,
Guest = Permission.Browse,
Reader = Permission.Browse| Permission.Help ,
Manager = Permission.Browse | Permission.Help | Permission.Customise
}
අවසර පද්ධතියක් ජනනය කිරීම සඳහා බිට්වේස් OR භාවිතා කරන සංකීර්ණ එනුම්. එබැවින් ඔබට එනුම් වල පූර්ණ සංඛ්යා අගය සඳහා සරල දර්ශකය [0,1,2 ..] මත විශ්වාසය තැබිය නොහැක.
සේවාදායක පැත්ත - සී #
Get["/roles"] = _ =>
{
var type = typeof(Role);
var data = Enum
.GetNames(type)
.Select(name => new
{
Id = (int)Enum.Parse(type, name),
Name = name
})
.ToArray();
return Response.AsJson(data);
};
ලබා ගැනීමේ ඉල්ලීම හැසිරවීමට ඉහත කේතය නැන්සිඑෆ්එක්ස් රාමුව භාවිතා කරයි. එය නැන්සිගේ Response.AsJson()
සහායක ක්රමය භාවිතා කරයි - නමුත් කණගාටු නොවන්න, ඔබට ඕනෑම සම්මත JSON ආකෘති පත්රයක් භාවිතා කළ හැකිය, එනමුත් දැනටමත් අනුක්රමිකකරණය සඳහා සූදානම් කර ඇති සරල නිර්නාමික වර්ගයකට එනුම් ප්රක්ෂේපණය කර ඇත.
ජනනය කරන ලද JSON
[
{"Id":0,"Name":"None"},
{"Id":2097155,"Name":"Guest"},
{"Id":2916367,"Name":"Reader"},
{"Id":4186095,"Name":"Manager"}
]
සේවාලාභී පැත්ත - කෝපි පිටපත
fillSelect=(id, url, selectedValue=0)->
$select = $ id
$option = (item)-> $ "<option/>",
{
value:"#{item.Id}"
html:"#{item.Name}"
selected:"selected" if item.Id is selectedValue
}
$.getJSON(url).done (data)->$option(item).appendTo $select for item in data
$ ->
fillSelect "#role", "/roles", 2916367
HTML පෙර
<select id="role" name="role"></select>
HTML පසු
<select id="role" name="role">
<option value="0">None</option>
<option value="2097155">Guest</option>
<option value="2916367" selected="selected">Reader</option>
<option value="4186095">Manager</option>
</select>