枚举转换成下拉列表查询页面

     <form id="frmSearch" method="get" class="form-inline" enctype="application/x-www-form-urlencoded">
                                    <input type="hidden" id="pageIndex" name="pageIndex" value="@Model.Pager.PageIndex" />
                                    <input type="hidden" id="pageSize" name="pageSize" value="@Model.Pager.PageSize" />
 
                                    <div class="form-group">
                                        <div class="input-group">
                                            <select class="form-control" name="operateType" id="operateType">
                                                <option value="">请选择</option>
                                                @foreach (var dict in ViewBag.Type)
                                                {
                                                    <option value="@dict.Key" @Html.Raw(Model.OperateType == dict.Key ? " selected=\"selected\"" : "")>@dict.Value</option>
                                                }
                                            </select>

                                            @*<select id="OperateType" name="OperateType" class="form-control" style="height:30px;">
                                                <option value="">--操作类型--</option>
                                            </select>*@
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="input-group input-group-sm" style="width: 300px;">
                                            <input type="text" name="kw" class="form-control pull-right" placeholder="Search" value="@ViewBag.kw">
                                            <div class="input-group-btn">
                                                <button type="submit" class="btn btn-default">
                                                    <i class="fa fa-search"></i>
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                </form>
 /// <summary>
        /// 用户操作日志
        /// </summary>
        /// <param name="type"></param>
        /// <param name="kw"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public ActionResult UsersOperateLogIndex(int userId=0, string kw = "", int pageIndex = 1, int pageSize = 15,int operateType=0)
        {
            var model = new UsersOperateLogIndexModel(userId, kw, pageIndex, pageSize);
            base.RenderOutputBaseModel(model, new Tuple<string, string>("用户日志管理", Url.Action("UsersOperateLogIndex", "UsersOperateLog", new { area = "Member" })));
            var usersOperateLog = base.UsersOperateLogService.Value.PageEntities(userId,model.Pager, kw, operateType);

            if (usersOperateLog != null)
            {
                var users = new List<VM<Users_OperateLog>>();
                
                foreach (var item in usersOperateLog)
                {
                    var vm = new VM<Users_OperateLog>(item);
                    //验证枚举是否存在默认值
                    if (Enum.IsDefined(typeof(ModuleType),item.ModuleName==null?"":item.ModuleName))
                    {
                        //获取模块名称
                        vm.ViewBag.Moudou = EnumUtility.GetEnumDescription((Enum)Enum.Parse(typeof(ModuleType), item.ModuleName.ToString()));
                    }
                    //获取操作类型
                    //vm.ViewBag.Type = EnumUtility.GetEnumDescription((Enum)Enum.Parse(typeof(OperateType), ((OperateType)item.OperateType).ToString()));

                    ViewBag.Type = EnumUtility.GetEnumDescDictionary(typeof(OperateType));
                    //获取用户名称                    
                    vm.ViewBag.UserName = base.UsersService.Value.GetUserName(item.UserId);
                    //获取监护人名称
                    vm.ViewBag.GuardianName = base.UsersGuardiansService.Value.GetName(item.GuardianId);                 
                    users.Add(vm);
                }                           
                model.Results = users;
            }
            ViewBag.kw = kw;
            model.OperateType = operateType;
            return View(model);
        }
using DeJin.EasyCare.Entities.Member;
using DeJin.EasyCare.WebUI.Models;
using System.Collections.Generic;

namespace DeJin.EasyCare.WebUI.Areas.Member.Models
{
    public class UsersOperateLogIndexModel:ListBaseModel
    {
        public UsersOperateLogIndexModel(int userIf=0, string kw = "", int pageIndex = 1, int pageSize = 10, string title = "用户操作日志管理", string subTitle = "用户操作日志") :
            base(title, subTitle)
        {
            this.Results = new List<VM<Users_OperateLog>>();
            this.Keyword = kw;
            if (pageIndex < 0) pageIndex = 1;
            if (pageSize < 2 || pageSize > 50) pageSize = 15;
            base.Pager.PageIndex = pageIndex;
            base.Pager.PageSize = pageSize;
            this.UserId = UserId;
        }

        /// <summary>
        /// 关键词
        /// </summary>
        public string Keyword { get; set; }
        /// <summary>
        /// 操作类型
        /// </summary>
        public int OperateType { get; set; }

        /// <summary>
        /// 数据集合
        /// </summary>
        public List<VM<Users_OperateLog>> Results { get; set; }

        /// <summary>
        /// 用户id
        /// </summary>
        public int UserId { get; set; }

     
    }
}

        #region 获取枚举成员与值Dictionary
        /// <summary>
        /// 获取枚举成员与键值对字典
        /// </summary>
        /// <param name="enumType">typeof(枚举名)</param>
        /// <returns>Dictionary(值,枚举名)对</returns>
        public static Dictionary<int, string> GetEnumDictionary(Type enumType)
        {
            Dictionary<int, string> dict = new Dictionary<int, string>();
            try
            {

                string[] names = Enum.GetNames(enumType);
                foreach (string n in names)
                {
                    int key = (int)Enum.Parse(enumType, n);
                    if (!dict.ContainsKey(key))
                    {
                        dict.Add(key, n);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return dict;
        }

        /// <summary>
        /// 获取枚举成员的中文描述与值对字典  Info界面一般用于数据集合,数组查询使用
        /// </summary>
        /// <param name="enumType">typeof(枚举名)</param>
        /// <returns>Dictionary(值,枚举中文描述)对</returns>
        public static Dictionary<int, string> GetEnumDescDictionary(Type enumType)
        {
            Dictionary<int, string> dict = new Dictionary<int, string>();
            try
            {
                string[] names = Enum.GetNames(enumType);
                foreach (string n in names)
                {
                    int key = (int)Enum.Parse(enumType, n);
                    if (!dict.ContainsKey(key))
                    {
                        dict.Add(key, GetEnumDescription((Enum)Enum.Parse(enumType, n)));
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return dict;
        }
        #endregion

        /// <summary>
        /// 获取一个枚举值的中文描述 一般用于Index列表显示
        /// </summary>
        /// <param name="obj">枚举值</param>
        /// <returns></returns>
        public static string GetEnumDescription(Enum obj)
        {

            FieldInfo fi = obj.GetType().GetField(obj.ToString());

            if (fi == null) return "";

            DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            return arrDesc.Length > 0 ? arrDesc[0].Description : "";
        }
using DeJin.EasyCare.Entities;
using DeJin.EasyCare.Entities.Member;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeJin.EasyCare.Services.Service.Member
{
    public class UsersOperateLogService : BaseService
    {
        /// <summary>
        /// 分页获取数据集合
        /// </summary>
        /// <param name="pager"></param>
        /// <returns></returns>
        public List<Users_OperateLog> PageEntities(int userId, PageInfo pager, string kw,int operateType)
        {
            return base.UsersOperateLogAccess.Value.PageEntities(userId,pager, kw, operateType);
        }
    }
}
using System.Collections.Generic;
using System.Linq;
using DeJin.EasyCare.DataNhibernate.Helpers;
using DeJin.EasyCare.Entities;
using DeJin.EasyCare.Entities.Member;

namespace DeJin.EasyCare.DBAccess.Member
{
    /// <summary>
    ///     用户操作记录数据访问仓储
    /// </summary>
    public class Users_OperateLogAccess : BaseAccess<Users_OperateLog, int>
    {
        /// <summary>
        /// 分页获取用户操作记录数据集合
        /// </summary>
        /// <param name="pager"></param>
        /// <param name="kw"></param>
        /// <param name="type"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public List<Users_OperateLog> PageEntities(int userId, PageInfo pager, string kw,int operateType)
        {
            var expr = PredicateBuilder.True<Users_OperateLog>();
            if (!string.IsNullOrEmpty(kw))
            {
                expr =
                    expr.And(
                        x =>
                        x.Operate.Contains(kw)
                        );
            }
            if (userId > 0)
            {
                expr = expr.And(x => x.UserId == userId);
            }
            if (operateType > 0)
            {
                expr = expr.And(x => x.OperateType == operateType);
            }
            var list = base.Query().Where(expr).OrderByDescending(p => p.Id).Skip(pager.Skip).Take(pager.PageSize).ToList();
            pager.Total = base.Query().Where(expr).Count();
            return list;
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值