Kendo mvc在过滤中显示枚举值

时间:2018-07-23 06:41:31

标签: c# model-view-controller kendo-ui

我有剑道格。一列按枚举值过滤: enter image description here

如何将这些值显示为字符串?模型中的显示名称不起作用。我知道当枚举是列标题还是行标题时该怎么做,但是不知道何时使用过滤器。

编辑

视图中可过滤的代码:

.Filterable(
    ftb =>
    {
        ftb.Multi(true); 
        ftb.DataSource(ds => ds.Read(r => r.Action("AccountTypeFilter", "Activity")).ServerFiltering(true));
    })

控制器中的动作:

public ActionResult AccountTypeFilter()
    {
        var values = Enum
            .GetValues(typeof(EAccountType))
            .Cast<EAccountType>()
            .Where(i => i != EAccountType._canLogIn && i != EAccountType._isAdmin && i != EAccountType._isSpecial)
            .Select(i =>
            new ActivityListItemViewModel()
            {
                AccountType = i
            });


        return Json(values);
    }

枚举:

public enum EAccountType
{
    Undefined = 0,

    [Display(Name = "ActivityLogger.AccountType.Customer")]
    Customer = 1 << 0, //1
    [Display(Name = "ActivityLogger.AccountType.Supplier")]
    Supplier = 1 << 1, //2
    [Display(Name = "ActivityLogger.AccountType.Operator")]
    Operator = 1 << 8, //256

    [Display(Name = "ActivityLogger.AccountType.Admin")]
    Admin = 1 << 15, //32768
    [Display(Name = "ActivityLogger.AccountType.SuperAdmin")]
    SuperAdmin = 1 << 16, //65536

    [Display(Name = "ActivityLogger.AccountType.Cron")]
    Cron = 1 << 19, //524288
    [Display(Name = "ActivityLogger.AccountType.System")]
    System = 1 << 20, //1048576
    [Display(Name = "ActivityLogger.AccountType.ApiUser")]
    ApiUser = 1 << 21, //2097152
    [Display(Name = "ActivityLogger.AccountType.SearchEngine")]
    SearchEngine = 1 << 22, //4194304

    _canLogIn = Customer | Supplier | Operator | Admin | SuperAdmin, //98563
    _isAdmin = Admin | SuperAdmin, //98304
    _isSpecial = Cron | System | ApiUser | SearchEngine, //7864320
}

0 个答案:

没有答案