From 7295544803e0c85b69547150c796ee193228e8b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20Mihajlovi=C4=87?= Date: Wed, 1 Jul 2015 01:08:26 +0200 Subject: [PATCH 1/4] Update ResourceHelper.cs --- Mvc.JQuery.Datatables/ResourceHelper.cs | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Mvc.JQuery.Datatables/ResourceHelper.cs b/Mvc.JQuery.Datatables/ResourceHelper.cs index 2ea92da..320f61c 100644 --- a/Mvc.JQuery.Datatables/ResourceHelper.cs +++ b/Mvc.JQuery.Datatables/ResourceHelper.cs @@ -23,4 +23,55 @@ public static T GetResourceLookup(Type resourceType, string resourceName) return default(T); } } + + /// + /// Group of helpers that gets Display attributes values from Enum members + /// DražaM + /// + public static class EnumHelper + { + public static string DisplayName(this Enum value) + { + Type enumType = value.GetType(); + var enumValue = Enum.GetName(enumType, value); + MemberInfo member = enumType.GetMember(enumValue)[0]; + + var attrs = member.GetCustomAttributes(typeof(DisplayAttribute), false); + var outString = member.Name; + if (attrs.Length > 0) + { + + if (((DisplayAttribute)attrs[0]).ResourceType != null) + { + outString = ((DisplayAttribute)attrs[0]).GetName(); + } + else + { + outString = ((DisplayAttribute)attrs[0]).Name; + } + } + return outString; + } + + public static List AllDisplayNames(this Type tip) + { + List exitList = new List(); + foreach (string r in Enum.GetNames(tip)) + { + exitList.Add(((Enum)Enum.Parse(tip, r)).DisplayName()); + }; + return exitList; + } + + public static object[] EnumValLabPairs(this Type type) + { + var vals = Enum.GetNames(type).Cast().ToArray(); + var lbls = type.AllDisplayNames().Cast().ToArray(); + var result = new List(); + + for (var x = 0; x <= vals.Length - 1; x++) { result.Add(new { value = vals[x], label = lbls[x] }); } + + return result.ToArray(); + } + } } From 2e71882ff6b6131d76bcc9146dc5a0acf9dec595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20Mihajlovi=C4=87?= Date: Wed, 1 Jul 2015 01:10:20 +0200 Subject: [PATCH 2/4] Update FilterDef.cs --- Mvc.JQuery.Datatables/FilterDef.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Mvc.JQuery.Datatables/FilterDef.cs b/Mvc.JQuery.Datatables/FilterDef.cs index af6c3f4..3cc881d 100644 --- a/Mvc.JQuery.Datatables/FilterDef.cs +++ b/Mvc.JQuery.Datatables/FilterDef.cs @@ -42,7 +42,8 @@ private void SetDefaultValuesAccordingToColumnType(Type t) else if (t.IsEnum) { type = "checkbox"; - values = Enum.GetNames(t).Cast().ToArray(); + //values = Enum.GetNames(t).Cast().ToArray(); + values = t.EnumValLabPairs(); } else { @@ -50,4 +51,4 @@ private void SetDefaultValuesAccordingToColumnType(Type t) } } } -} \ No newline at end of file +} From 402e00836c85f5c393fae506420f0d9eaa2afd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20Mihajlovi=C4=87?= Date: Wed, 1 Jul 2015 01:14:45 +0200 Subject: [PATCH 3/4] Update DataTableConfigVm.cs --- Mvc.JQuery.Datatables/DataTableConfigVm.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Mvc.JQuery.Datatables/DataTableConfigVm.cs b/Mvc.JQuery.Datatables/DataTableConfigVm.cs index 950eb36..0384a25 100644 --- a/Mvc.JQuery.Datatables/DataTableConfigVm.cs +++ b/Mvc.JQuery.Datatables/DataTableConfigVm.cs @@ -134,6 +134,10 @@ public TTarget Select(params string[] options) { _colDef.Filter.type = "select"; _colDef.Filter.values = options.Cast().ToArray(); + if (_colDef.Type.IsEnum) + { + _colDef.Filter.values = _colDef.Type.EnumValLabPairs(); + } return _target; } public TTarget NumberRange() @@ -158,6 +162,10 @@ public TTarget CheckBoxes(params string[] options) { _colDef.Filter.type = "checkbox"; _colDef.Filter.values = options.Cast().ToArray(); + if (_colDef.Type.IsEnum) + { + _colDef.Filter.values = _colDef.Type.EnumValLabPairs(); + } return _target; } @@ -294,4 +302,4 @@ private static IDictionary ConvertObjectToDictionary(object obj) return new Dictionary(new RouteValueDictionary(obj)); } } -} \ No newline at end of file +} From 3935968e02eda88c359d79538010f0f4c6d5d5eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20Mihajlovi=C4=87?= Date: Wed, 1 Jul 2015 01:20:29 +0200 Subject: [PATCH 4/4] Update ResourceHelper.cs --- Mvc.JQuery.Datatables/ResourceHelper.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Mvc.JQuery.Datatables/ResourceHelper.cs b/Mvc.JQuery.Datatables/ResourceHelper.cs index 320f61c..6cb3174 100644 --- a/Mvc.JQuery.Datatables/ResourceHelper.cs +++ b/Mvc.JQuery.Datatables/ResourceHelper.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Reflection; using System.Text; +using System.ComponentModel.DataAnnotations; namespace Mvc.JQuery.Datatables {