I'm trying to show Enum text values in a grid control following the tutorial provided in this site:
But even the grid shows the numeric values. Here's is my code for reference:
View
@using Syncfusion.JavaScript.Shared.Serializer
@using ######################
@{
DataManagerConverter.Serializer = new DMSerial();
}
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource((IEnumerable<object>)ViewBag.datasource)
.AllowPaging() /*Paging Enabled*/
.AllowFiltering()
.Columns(col =>
{
col.Field("OrderID").HeaderText("OrderID").IsPrimaryKey(true).Width(75).Add();
col.Field("FirstName").HeaderText("FirstName").Width(75).Add();
col.Field("LastName").HeaderText("LastName").Width(75).Add();
col.Field("Title").HeaderText("Title").Width(110).Add();
col.Field("Unit").HeaderText("Unit").Width(75).Add();
}))
using System.Web.Mvc;
using System.Runtime.Serialization;
using Syncfusion.JavaScript.Shared.Serializer;
using System.Collections.Generic;
using System.Web.Script.Serialization;
namespace ################
{
public class DMSerial : IDataSourceSerializer
{
public string Serialize(object obj)
{
return Serialize(obj, null);
}
public string Serialize(object obj, object settings = null)
{
var str = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
return str;
}
}
public class HomeController : BaseController
{
public static List<Details> obj = new List<Details>();
public ActionResult Index()
{
var DataSource = GetInversedData();
ViewBag.datasource = DataSource;
return View();
}
public static List<Details> GetInversedData()
{
List<Details> obj = new List<Details>();
for (var i = 0; i < 1; i++)
{
obj.Add(new Details() { OrderID = 10001, FirstName = "Nancy", LastName = "Davolio", Title = "Sales Representative", Unit = UnitOfMeasure.g });
obj.Add(new Details() { OrderID = 10002, FirstName = "Andrew", LastName = "Fuller", Title = "Vice President, Sales", Unit = UnitOfMeasure.Kg });
obj.Add(new Details() { OrderID = 10003, FirstName = "Janet", LastName = "Leverling", Title = "Sales Representative", Unit = UnitOfMeasure.l });
obj.Add(new Details() { OrderID = 10004, FirstName = "Margaret", LastName = "Peacock", Title = "Sales Representative", Unit = UnitOfMeasure.Nr });
obj.Add(new Details() { OrderID = 10005, FirstName = "Steven", LastName = "Buchanan", Title = "Sales Manager", Unit = UnitOfMeasure.Nr });
obj.Add(new Details() { OrderID = 10006, FirstName = "Michael", LastName = "Suyama", Title = "Sales Representative", Unit = UnitOfMeasure.g });
obj.Add(new Details() { OrderID = 10007, FirstName = "Robert", LastName = "King", Title = "Sales Representative", Unit = UnitOfMeasure.Kg });
obj.Add(new Details() { OrderID = 10008, FirstName = "Laura", LastName = "Callahan", Title = "Inside Sales Coordinator", Unit = UnitOfMeasure.l });
}
return obj;
}
public class Details
{
public int OrderID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Title { get; set; }
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public UnitOfMeasure Unit { get; set; }
}
public enum UnitOfMeasure
{
[EnumMember(Value = "Number")]
Nr = 0,
[EnumMember(Value = "Kilogram")]
Kg = 1,
[EnumMember(Value = "Gram")]
g = 2,
[EnumMember(Value = "Liter")]
l = 3
}
}
}