6、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——增删改查CRUD

来源:互联网 发布:c语言其实很简单百度云 编辑:程序博客网 时间:2024/06/05 11:51

这篇以用户角色为例,来实现CRUD。效果如下:


这里要用到角色表,角色权限表等。看Model SMROLETB,如下:

/* ============================================================================== * 功能描述:Rose   * 公司名称: * 创 建 者:Zouqj * 创建日期:2014-3-18 9:22:29 * ==============================================================================*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel.DataAnnotations;namespace YKT.Model{    [MetadataType(typeof(SMROLETBMetadata))] //这里是进行映射的  public partial class SMROLETB    {        #region 自定义属性,即由数据实体扩展的实体        [Display(Name = "人员")]        [ScaffoldColumn(false)]        public string SysPersonId { get; set; }        [ScaffoldColumn(false)]        [Display(Name = "人员")]        public string SysPersonIdOld { get; set; }        [ScaffoldColumn(false)]        [Display(Name = "创建者")]        public string CreateUserName { get; set; }        [ScaffoldColumn(false)]        [Display(Name = "修改者")]        public string UpdateUserName { get; set; }        [ScaffoldColumn(false)]        [Display(Name = "状态")]        public string StatusName { get; set; }        #endregion    }  public class SMROLETBMetadata  {      [ScaffoldColumn(false)]      [Display(Name = "主键", Order = 1)]      public int ROLE_ID { get; set; }      [ScaffoldColumn(true)]      [Display(Name = "角色名称", Order = 5)]      [StringLength(20, ErrorMessage = "长度不可超过20")]      [Required(ErrorMessage = "不能为空")]      public string ROLE_NAME { get; set; }      [ScaffoldColumn(true)]      [Display(Name = "创建时间", Order = 4)]      [DataType(DataType.DateTime, ErrorMessage = "时间格式不正确")]      public DateTime? CREATION_TIME { get; set; }      [ScaffoldColumn(false)]      [Display(Name = "创建人", Order = 7)]      public int CREATION_USER { get; set; }      [ScaffoldColumn(true)]      [Display(Name = "说明", Order = 7)]      [StringLength(100, ErrorMessage = "长度不可超过100")]      public string REMARK { get; set; }      [ScaffoldColumn(true)]      [Display(Name = "角色状态", Order = 7)]      [StringLength(2, ErrorMessage = "长度不可超过200")]      [Required(ErrorMessage = "不能为空")]      public string STATUS { get; set; }  }  public class RoleView : SMROLETB  {      public List<string> UserNames { get; set; }  }}
控制器SysRoleController:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using YKT.Model;using YKT.BLL;using YKT.IBLL;using YKT.Common;namespace YKT.Controllers{    public class SysRoleController : BaseController    {        #region 初始化        string ClassName = "SysRole"; //类名        ISysRoleService _roleService;        public SysRoleController()        {            if (_roleService == null)            {                _roleService = new SysRoleService();            }        }        ValidationErrors validationErrors = new ValidationErrors();        OMOPERATIONLOGTB OperLog = new OMOPERATIONLOGTB();        #endregion        #region 查询        /// <summary>        /// 列表        /// </summary>        /// <returns></returns>        //[SupportFilter]        public ActionResult Index(string view)        {            return View();        }        /// <summary>        /// 异步加载数据        /// </summary>        /// <param name="page">页码</param>        /// <param name="rows">每页显示的行数</param>        /// <param name="order">排序字段</param>        /// <param name="sort">升序asc(默认)还是降序desc</param>        /// <param name="search">查询条件</param>        /// <returns></returns>        [HttpPost]        //[SupportFilter]        public JsonResult GetData(string id, int page, int rows, string order, string sort, string search)        {            int total = 0;            var queryData = _roleService.GetByParam(id, page, rows, order, sort, search, ref total);            var data = queryData.ToList().Select(m => new { ROLE_ID = m.ROLE_ID, ROLE_NAME = m.ROLE_NAME, CREATION_TIME = m.CREATION_TIME, REMARK = m.REMARK, STATUS = m.StatusName });            //构造成Json的格式传递            var result = new { total = total, rows = data };            return Json(result, JsonRequestBehavior.AllowGet);        }               #endregion        #region 分配权限        /// <summary>        /// 首次设置SysMenu        /// </summary>        /// <param name="id">主键</param>        /// <returns></returns>         //[SupportFilter]        public ActionResult SetSysMenu(string id)        {            var entity = _roleService.GetById(int.Parse(id));            ViewData["myname"] = entity.ROLE_NAME;            ViewData["myid"] = id;            return View(entity);        }        /// <summary>        /// 分配权限        /// </summary>        /// <param name="collection"></param>        /// <returns></returns>           [HttpPost]        //[SupportFilter]        public ActionResult Save(FormCollection collection)        {            string returnValue = string.Empty;            string[] ids = collection["ids"].GetString().Split(',');            int id = collection["id"].GetInt();            int userId = GetCurrentAccount().USER_ID;            OperLog = new OMOPERATIONLOGTB { OPERATION_TYPE = "U", FUNC_CODE = "900009", USER_ID = userId, CLASSNAME = ClassName + ": Save" };            try            {                if (_roleService.SaveCollection(ref validationErrors, ids, id))                {                    OperLog.REMARK = "信息的Id为" + string.Join(",", ids) + Suggestion.InsertSucceed;                    LogClassService.WriteServiceLog(OperLog);                    return Json("OK");                }                else                {                    if (validationErrors != null && validationErrors.Count > 0)                    {                        validationErrors.All(a =>                        {                            returnValue += a.ErrorMessage;                            return true;                        });                    }                    OperLog.REMARK = "信息的Id为" + string.Join(",", ids) + Suggestion.InsertFail;                    LogClassService.WriteServiceLog(OperLog);                }            }            catch (Exception ex)            {                ExceptionsHander.WriteExceptions(ex);            }            return Json(returnValue);        }        #endregion        #region 增        /// <summary>        /// 首次创建        /// </summary>        /// <returns></returns>        //[SupportFilter]        public ActionResult Create(string id)        {            return View();        }        /// <summary>        /// 创建        /// </summary>        /// <param name="entity"></param>        /// <returns></returns>        [HttpPost]        //[SupportFilter]        public ActionResult Create(SMROLETB entity)        {            if (entity != null && ModelState.IsValid)            {                if (IsOracle) // 如果使用oralce数据库 +此句                 {                    entity.ROLE_ID = (int)GetProblemXH("SMROLETB_SEQ");                 }                entity.CREATION_TIME = DateTime.Now;                entity.CREATION_USER = GetCurrentAccount().USER_ID;                string returnValue = string.Empty;                OperLog = new OMOPERATIONLOGTB { OPERATION_TYPE = "N", FUNC_CODE = "010701", USER_ID = GetCurrentAccount().USER_ID, CLASSNAME = ClassName + ": Create" };                if (_roleService.Create(ref validationErrors, entity))                {                    OperLog.REMARK = "角色:" + entity.ROLE_NAME + Suggestion.InsertSucceed;                    LogClassService.WriteServiceLog(OperLog);//写入日志                     return Json(Suggestion.InsertSucceed);                }                else                {                    if (validationErrors != null && validationErrors.Count > 0)                    {                        validationErrors.All(a =>                        {                            returnValue += a.ErrorMessage;                            return true;                        });                    }                    OperLog.REMARK = "角色:" + entity.ROLE_NAME + Suggestion.InsertFail;                    LogClassService.WriteServiceLog(OperLog);//写入日志                     return Json(Suggestion.InsertFail + returnValue); //提示插入失败                }            }            return Json(Suggestion.InsertFail + ",请核对输入的数据的格式"); //提示输入的数据的格式不对         }        #endregion        #region 删        /// <summary>        /// 删除        /// </summary>        /// <param name="collection"></param>        /// <returns></returns>           [HttpPost]        //[SupportFilter]        public ActionResult Delete(FormCollection collection)        {            string returnValue = string.Empty;            List<int> lists = collection["query"].GetString().ToIntList();            int[] deleteId = lists.ToArray();            if (deleteId != null && deleteId.Length > 0)            {                OperLog = new OMOPERATIONLOGTB { OPERATION_TYPE = "D", FUNC_CODE = "010701", USER_ID = Convert.ToInt32(GetCurrentAccount().USER_ID), CLASSNAME = ClassName + ": Delete" };                if (deleteId.Length == 1)                {                    if (_roleService.Delete(ref validationErrors, deleteId[0]))                    {                        OperLog.REMARK = "角色Id:" + deleteId[0] + Suggestion.DeleteSucceed;                        LogClassService.WriteServiceLog(OperLog);//写入日志                         return Json("OK");                    }                    else                    {                        OperLog.REMARK = "角色Id:" + deleteId[0] + Suggestion.DeleteSucceed;                    }                    LogClassService.WriteServiceLog(OperLog);//写入日志                 }                #region 批量删除                //else if (_roleService.DeleteCollection(ref validationErrors, deleteId))                //{                //    OperLog.REMARK ="信息的Id为" + string.Join(",", deleteId)+ Suggestion.DeleteSucceed;                //    LogClassService.WriteServiceLog(OperLog);//写入日志                 //    return Json("OK");                //}                //else                //{                //    if (validationErrors != null && validationErrors.Count > 0)                //    {                //        validationErrors.All(a =>                //        {                //            returnValue += a.ErrorMessage;                //            return true;                //        });                //    }                //    OperLog.REMARK = "信息的Id为" + string.Join(",", deleteId) + Suggestion.DeleteFail;                //    LogClassService.WriteServiceLog(OperLog);//删除失败 写入日志                 //}                #endregion            }            return Json(returnValue);        }        #endregion        #region 改        /// <summary>        /// 首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns></returns>         //[SupportFilter]        public ActionResult Edit(int id)        {            SMROLETB item = _roleService.GetById(id);            return View(item);        }        /// <summary>        /// 提交编辑信息        /// </summary>        /// <param name="id">主键</param>        /// <param name="collection">客户端传回的集合</param>        /// <returns></returns>        [HttpPost]        //[SupportFilter]        public ActionResult Edit(int id, SMROLETB entity)        {            if (entity != null && ModelState.IsValid)            {   //数据校验                entity.UPDATE_TIME = DateTime.Now;                entity.UPDATE_USER = GetCurrentAccount().USER_ID;                string returnValue = string.Empty;                OperLog = new OMOPERATIONLOGTB { OPERATION_TYPE = "U", FUNC_CODE = "010701", USER_ID = Convert.ToInt32(GetCurrentAccount().USER_ID), CLASSNAME = ClassName + ": Edit" };                if (_roleService.Edit(ref validationErrors, entity))                {                    OperLog.REMARK = "角色:" + entity.ROLE_NAME + Suggestion.UpdateSucceed;                    LogClassService.WriteServiceLog(OperLog);//写入日志                     return Json(Suggestion.UpdateSucceed); //提示更新成功                 }                else                {                    if (validationErrors != null && validationErrors.Count > 0)                    {                        validationErrors.All(a =>                        {                            returnValue += a.ErrorMessage;                            return true;                        });                    }                    OperLog.REMARK = "角色:" + entity.ROLE_NAME + Suggestion.UpdateFail + returnValue;                    return Json(Suggestion.UpdateFail + returnValue); //提示更新失败                }            }            return Json(Suggestion.UpdateFail + "请核对输入的数据的格式"); //提示输入的数据的格式不对                       }        #endregion        #region 详细        /// <summary>        /// 查看详细        /// </summary>        /// <param name="id"></param>        /// <returns></returns>        //[SupportFilter]        public JsonResult Details(string id)        {            if (string.IsNullOrWhiteSpace(id))            {                return null;            }            var item = _roleService.GetViewById(int.Parse(id));            foreach (var s in item.UserNames)            {                item.SysPersonId += s + ",";            }            string usernames = string.IsNullOrWhiteSpace(item.SysPersonId) ? string.Empty : item.SysPersonId.TrimEnd(',');            item.SysPersonId = usernames;            return Json(item, JsonRequestBehavior.AllowGet);        }        #endregion    }}

业务逻辑层接口ISysRoleService:

/* ============================================================================== * 功能描述:ISysRoleService   * 公司名称: 雄帝 * 创 建 者:Zouqj * 创建日期:2014-3-18 10:10:02 * ==============================================================================*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using YKT.Model;namespace YKT.IBLL{    /// <summary>    /// 角色 接口    /// </summary>    public interface ISysRoleService    {        /// <summary>        /// 查询的数据        /// </summary>        /// <param name="id">额外的参数</param>        /// <param name="page">页码</param>        /// <param name="rows">每页显示的行数</param>        /// <param name="order">排序字段</param>        /// <param name="sort">升序asc(默认)还是降序desc</param>        /// <param name="search">查询条件</param>        /// <param name="total">结果集的总数</param>        /// <returns>结果集</returns>        IQueryable<SMROLETB> GetByParam(string id, int page, int rows, string order, string sort, string search, ref int total);        /// <summary>        /// 获取所有        /// </summary>        /// <returns></returns>        List<SMROLETB> GetAll();        /// <summary>        /// 获取在该表中出现的所有外键实体        /// </summary>        /// <param name="id"></param>        /// <returns></returns>        List<SMUSERTB> GetRefSysPerson();        /// <summary>        /// 根据主键,查看详细信息        /// </summary>        /// <param name="id">根据主键</param>        /// <returns></returns>        SMROLETB GetById(int id);        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        RoleView GetViewById(int id);        /// <summary>        /// 创建一个对象        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entity">一个对象</param>        /// <returns></returns>        bool Create(ref Common.ValidationErrors validationErrors, SMROLETB entity);        /// <summary>        ///  创建对象集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entitys">对象集合</param>        /// <returns></returns>        bool CreateCollection(ref Common.ValidationErrors validationErrors, IQueryable<SMROLETB> entitys);        /// <summary>        /// 删除一个对象        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="id">一条数据的主键</param>        /// <returns></returns>          bool Delete(ref Common.ValidationErrors validationErrors, int id);        /// <summary>        /// 删除对象集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="deleteCollection">主键的集合</param>        /// <returns></returns>               bool DeleteCollection(ref Common.ValidationErrors validationErrors, int[] deleteCollection);        /// <summary>        /// 编辑一个对象        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entity">一个对象</param>        /// <returns></returns>        bool Edit(ref Common.ValidationErrors validationErrors, SMROLETB entity);        /// <summary>        ///  创建对象集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entitys">对象集合</param>        /// <returns></returns>        bool EditCollection(ref Common.ValidationErrors validationErrors, IQueryable<SMROLETB> entitys);        /// <summary>        /// 保存对象集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="deleteCollection">主键的集合</param>        /// <returns></returns>               bool SaveCollection(ref Common.ValidationErrors validationErrors, string[] saveCollection, int id);    }}

业务逻辑层SysRoleService:

/* ============================================================================== * 功能描述:SysRoleService   * 公司名称: 雄帝 * 创 建 者:Zouqj * 创建日期:2014-3-18 10:14:29 * ==============================================================================*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using YKT.IBLL;using YKT.Model;using YKT.DAL;using YKT.Common;using System.Transactions;using YKT.Common.Functions;namespace YKT.BLL{    /// <summary>    /// 角色     /// </summary>    public class SysRoleService : ISysRoleService, IDisposable    {        #region 初始化        /// <summary>        /// 私有的数据访问上下文        /// </summary>        protected YKTEntities db;        /// <summary>        /// 角色的数据库访问对象        /// </summary>        SysRoleRepository repository = new SysRoleRepository();        /// <summary>        /// 构造函数,默认加载数据访问上下文        /// </summary>        public SysRoleService()        {            db = new YKTEntities();        }        /// <summary>        /// 已有数据访问上下文的方法中调用        /// </summary>        /// <param name="entities">数据访问上下文</param>        public SysRoleService(YKTEntities entities)        {            db = entities;        }        #endregion        #region 查询        /// <summary>        /// 查询的数据        /// </summary>        /// <param name="id">额外的参数</param>        /// <param name="page">页码</param>        /// <param name="rows">每页显示的行数</param>        /// <param name="order">排序字段</param>        /// <param name="sort">升序asc(默认)还是降序desc</param>        /// <param name="search">查询条件</param>        /// <param name="total">结果集的总数</param>        /// <returns>结果集</returns>        public IQueryable<SMROLETB> GetByParam(string id, int page, int rows, string order, string sort, string search, ref int total)        {            IQueryable<SMROLETB> queryData = repository.DaoChuData(db, order, sort, search);            total = queryData.Count();            if (total > 0)            {                if (page <= 1)                {                    queryData = queryData.Take(rows);                }                else                {                    queryData = queryData.Skip((page - 1) * rows).Take(rows);                }                foreach (var item in queryData)                {                    if (item.SMUSERTB != null)                    {                        item.SysPersonId = string.Empty;                        foreach (var it in item.SMUSERTB)                        {                            item.SysPersonId += it.USER_NAME + ' ';                        }                        item.StatusName = SelectListClass.GetStatusName(item.STATUS);                    }                }            }            return queryData;        }        /// <summary>        /// 获取在该表一条数据中,出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public List<SMUSERTB> GetRefSysPerson(int id)        {            return repository.GetRefSysPerson(db, id).ToList();        }        /// <summary>        /// 获取在该表中出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public List<SMUSERTB> GetRefSysPerson()        {            return repository.GetRefSysPerson(db).ToList();        }        #endregion        #region 分配权限        public bool SaveCollection(ref ValidationErrors validationErrors, string[] ids, int id)        {            char split = '^';            var data = (                from f in ids                where f.Contains(split)                select f.Substring(0, f.IndexOf(split))                        ).Union(                from f in ids                where !string.IsNullOrWhiteSpace(f) && !f.Contains(split)                select f);            using (TransactionScope transactionScope = new TransactionScope())            {            List<int> lists = new List<int>();            if (data != null && data.Count() > 0)            {                foreach (var v in data)                {                    lists.Add(int.Parse(v));                }            }            if (db.Connection.State == System.Data.ConnectionState.Closed)            {                db.Connection.Open();            }            //利用编码机制,查询出所有的菜单            var SysMenusIds = db.SMMENUTB.Where(w => lists.Contains(w.ID)).Select(s => s.ID).Distinct();            StringBuilder builder = new StringBuilder();            builder.AppendFormat("DELETE FROM  SMMENUROLEFUNCTB WHERE ROLEID = {0};", id);//删除该角色的所有的菜单和操作            foreach (var item in SysMenusIds)            {//插入菜单                builder.AppendFormat("INSERT INTO SMMENUROLEFUNCTB(ROLEID,MENUID) VALUES({0},{1});"                   , id, item);            }            foreach (var item in ids)            {//插入操作                if (item.Contains(split))                {                    builder.AppendFormat("INSERT INTO SMMENUROLEFUNCTB(ROLEID,MENUID,FUNC_ID) VALUES({0},{1},{2});"                   , id, item.Substring(0, item.IndexOf(split)), item.Substring(item.IndexOf(split) + 1));                }            }                       db.ExecuteStoreCommand(builder.ToString());            db.SaveChanges();            transactionScope.Complete();            return true;            }        }        #endregion        #region 增        /// <summary>        /// 创建一个角色        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="db">数据库上下文</param>        /// <param name="entity">一个角色</param>        /// <returns></returns>        public bool Create(ref ValidationErrors validationErrors, YKTEntities db, SMROLETB entity)        {            int count = 1;            foreach (int item in entity.SysPersonId.GetIdSort())            {                SMUSERTB sys = new SMUSERTB { USER_ID = item };                db.SMUSERTB.Attach(sys);                entity.SMUSERTB.Add(sys);                count++;            }            repository.Create(db, entity);            if (count == repository.Save(db))            {                return true;            }            else            {                validationErrors.Add("创建出错了");            }            return false;        }        /// <summary>        /// 创建一个角色        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entity">一个角色</param>        /// <returns></returns>        public bool Create(ref ValidationErrors validationErrors, SMROLETB entity)        {            try            {                using (TransactionScope transactionScope = new TransactionScope())                {                    if (Create(ref validationErrors, db, entity))                    {                        transactionScope.Complete();                        return true;                    }                    else                    {                        Transaction.Current.Rollback();                    }                }                return true;            }            catch (Exception ex)            {                validationErrors.Add(ex.Message);                ExceptionsHander.WriteExceptions(ex);            }            return false;        }        /// <summary>        ///  创建角色集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entitys">角色集合</param>        /// <returns></returns>        public bool CreateCollection(ref ValidationErrors validationErrors, IQueryable<SMROLETB> entitys)        {            try            {                if (entitys != null)                {                    int flag = 0, count = entitys.Count();                    if (count > 0)                    {                        using (TransactionScope transactionScope = new TransactionScope())                        {                            foreach (var entity in entitys)                            {                                if (Create(ref validationErrors, db, entity))                                {                                    flag++;                                }                                else                                {                                    Transaction.Current.Rollback();                                    return false;                                }                            }                            if (count == flag)                            {                                transactionScope.Complete();                                return true;                            }                        }                    }                }            }            catch (Exception ex)            {                validationErrors.Add(ex.Message);                ExceptionsHander.WriteExceptions(ex);            }            return false;        }        public List<SMROLETB> GetAll()        {            return repository.GetAll(db).ToList();        }        #endregion        #region 删        /// <summary>        /// 删除一个角色        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="id">一个角色的主键</param>        /// <returns></returns>          public bool Delete(ref ValidationErrors validationErrors, int id)        {            try            {                return repository.Delete(id) == 1;            }            catch (Exception ex)            {                validationErrors.Add(ex.Message);                ExceptionsHander.WriteExceptions(ex);            }            return false;        }        /// <summary>        /// 删除角色集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="deleteCollection">主键的角色</param>        /// <returns></returns>            public bool DeleteCollection(ref ValidationErrors validationErrors, int[] deleteCollection)        {            try            {                if (deleteCollection != null)                {                    using (TransactionScope transactionScope = new TransactionScope())                    {                        repository.Delete(db, deleteCollection);                        if (deleteCollection.Length == repository.Save(db))                        {                            transactionScope.Complete();                            return true;                        }                        else                        {                            Transaction.Current.Rollback();                        }                    }                }            }            catch (Exception ex)            {                validationErrors.Add(ex.Message);                ExceptionsHander.WriteExceptions(ex);            }            return false;        }        #endregion        #region 改        /// <summary>        /// 编辑一个角色        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="db">数据上下文</param>        /// <param name="entity">一个角色</param>        /// <returns>是否编辑成功</returns>        public bool Edit(ref ValidationErrors validationErrors, YKTEntities db, SMROLETB entity)        {  /*                                                  * 不操作 原有 现有                           * 增加   原没 现有                           * 删除   原有 现没                           */            if (entity == null)            {                return false;            }            int count = 1;            SMROLETB editEntity = repository.Edit(db, entity);            List<int> addSysPersonId = new List<int>();            List<int> deleteSysPersonId = new List<int>();            DataOfDiffrent.GetDiffrent(entity.SysPersonId.GetIdSort(), entity.SysPersonIdOld.GetIdSort(), ref addSysPersonId, ref deleteSysPersonId);            if (addSysPersonId != null && addSysPersonId.Count() > 0)            {                foreach (var item in addSysPersonId)                {                    SMUSERTB sys = new SMUSERTB { USER_ID = item };                    db.SMUSERTB.Attach(sys);                    editEntity.SMUSERTB.Add(sys);                    count++;                }            }            if (deleteSysPersonId != null && deleteSysPersonId.Count() > 0)            {                List<SMUSERTB> listEntity = new List<SMUSERTB>();                foreach (var item in deleteSysPersonId)                {                    SMUSERTB sys = new SMUSERTB { USER_ID = item };                    listEntity.Add(sys);                    db.SMUSERTB.Attach(sys);                }                foreach (SMUSERTB item in listEntity)                {                    editEntity.SMUSERTB.Remove(item);//查询数据库                    count++;                }            }            if (count == repository.Save(db))            {                return true;            }            else            {                validationErrors.Add("编辑角色出错了");            }            return false;        }        /// <summary>        /// 编辑一个角色        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entity">一个角色</param>        /// <returns>是否编辑成功</returns>        public bool Edit(ref ValidationErrors validationErrors, SMROLETB entity)        {            try            {                using (TransactionScope transactionScope = new TransactionScope())                {                    if (db.Connection.State == System.Data.ConnectionState.Closed)                     {                        db.Connection.Open();                    }                    if (Edit(ref validationErrors, db, entity))                    {                        transactionScope.Complete();                        return true;                    }                    else                    {                        Transaction.Current.Rollback();                    }                }            }            catch (Exception ex)            {                validationErrors.Add(ex.Message);                ExceptionsHander.WriteExceptions(ex);            }            return false;        }        /// <summary>        ///  编辑角色集合        /// </summary>        /// <param name="validationErrors">返回的错误信息</param>        /// <param name="entitys">角色集合</param>        /// <returns></returns>        public bool EditCollection(ref ValidationErrors validationErrors, IQueryable<SMROLETB> entitys)        {            if (entitys != null)            {                try                {                    int flag = 0, count = entitys.Count();                    if (count > 0)                    {                        using (TransactionScope transactionScope = new TransactionScope())                        {                            foreach (var entity in entitys)                            {                                if (Edit(ref validationErrors, db, entity))                                {                                    flag++;                                }                                else                                {                                    Transaction.Current.Rollback();                                    return false;                                }                            }                            if (count == flag)                            {                                transactionScope.Complete();                                return true;                            }                        }                    }                }                catch (Exception ex)                {                    validationErrors.Add(ex.Message);                    ExceptionsHander.WriteExceptions(ex);                }            }            return false;        }        #endregion        #region 详细        /// <summary>        /// 根据主键获取一个角色        /// </summary>        /// <param name="id">角色的主键</param>        /// <returns>一个角色</returns>        public SMROLETB GetById(int id)        {            return repository.GetById(db, id);        }        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        public RoleView GetViewById(int id)        {            return repository.GetViewById(db, id);        }        #endregion        public void Dispose()        {        }    }}

数据访问层SysRoleRepository:

/* ============================================================================== * 功能描述:SysRoleRepository   * 公司名称: 雄帝 * 创 建 者:Zouqj * 创建日期:2014-3-18 10:15:39 * ==============================================================================*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using YKT.Model;using YKT.Common;namespace YKT.DAL{    /// <summary>    /// 角色    /// </summary>    public class SysRoleRepository : BaseRepository<SMROLETB>, IDisposable    {        #region  查询        /// <summary>        /// 查询的数据        /// </summary>        /// <param name="YKTEntities">数据访问的上下文</param>        /// <param name="order">排序字段</param>        /// <param name="sort">升序asc(默认)还是降序desc</param>        /// <param name="search">查询条件</param>         /// <param name="listQuery">额外的参数</param>        /// <returns></returns>              public IQueryable<SMROLETB> DaoChuData(YKTEntities db, string order, string sort, string search, params object[] listQuery)        {            string where = string.Empty;            int flagWhere = 0;            Dictionary<string, string> queryDic = ValueConvert.StringToDictionary(search.GetString());            if (queryDic != null && queryDic.Count > 0)            {                foreach (var item in queryDic)                {                    if (flagWhere != 0)                    {                        where += " and ";                    }                    flagWhere++;                    if (!string.IsNullOrWhiteSpace(item.Key) && !string.IsNullOrWhiteSpace(item.Value) && item.Key.Equals("STATUS")) //需要查询的列名                    {                        where += "it." + item.Key + " = '" + item.Value + "'";                        continue;                    }                    where += "it." + item.Key + " like '%" + item.Value + "%'";                }            }            return db.SMROLETB                     .Where(string.IsNullOrEmpty(where) ? "true" : where)                     .OrderBy("it." + sort.GetString() + " " + order.GetString())                     .AsQueryable();        }        /// <summary>        /// 获取在该表一条数据中,出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public IQueryable<SMUSERTB> GetRefSysPerson(int id)        {            using (YKTEntities db = new YKTEntities())            {                return GetRefSysPerson(db, id);            }        }        /// <summary>        /// 获取在该表一条数据中,出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public IQueryable<SMUSERTB> GetRefSysPerson(YKTEntities db, int id)        {            return from m in db.SMROLETB                   from f in m.SMUSERTB                   where m.ROLE_ID == id                   select f;        }        /// <summary>        /// 获取在该表中出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public IQueryable<SMUSERTB> GetRefSysPerson(YKTEntities db)        {            return from m in db.SMROLETB                   from f in m.SMUSERTB                   select f;        }        /// <summary>        /// 获取在该表中出现的所有外键实体        /// </summary>        /// <param name="id">主键</param>        /// <returns>外键实体集合</returns>        public IQueryable<SMUSERTB> GetRefSysPerson()        {            using (YKTEntities db = new YKTEntities())            {                return GetRefSysPerson(db);            }        }        #endregion        #region 详细        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        public SMROLETB GetById(int id)        {            using (YKTEntities db = new YKTEntities())            {                return GetById(db, id);            }        }        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        public SMROLETB GetById(YKTEntities db, int id)        {            return db.SMROLETB.SingleOrDefault(s => s.ROLE_ID == id);        }        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        public RoleView GetViewById(int id)        {            using (YKTEntities db = new YKTEntities())            {                return GetViewById(db, id);            }        }        /// <summary>        /// 通过主键id,获取角色---查看详细,首次编辑        /// </summary>        /// <param name="id">主键</param>        /// <returns>角色</returns>        public RoleView GetViewById(YKTEntities db, int id)        {            var role = (from m in db.SMROLETB                       where m.ROLE_ID == id select m).ToList().Select(m=>                       new RoleView                       {                           ROLE_ID = m.ROLE_ID,                           ROLE_NAME = m.ROLE_NAME,                           CREATION_TIME = m.CREATION_TIME,                           UPDATE_TIME = m.UPDATE_TIME,                           CreateUserName = m.SMUSERTB.Where(x => x.USER_ID == m.CREATION_USER).Select(x=>x.USER_NAME).FirstOrDefault(),                           REMARK = m.REMARK,                           UpdateUserName = m.SMUSERTB.Where(x => x.USER_ID == m.UPDATE_USER).Select(x=>x.USER_NAME).FirstOrDefault(),                           STATUS = m.STATUS,                           StatusName = SelectListClass.GetStatusName(m.STATUS),                           UserNames = m.SMUSERTB.Select(x=>x.USER_NAME).ToList()                       });            return role.FirstOrDefault();        }        #endregion        #region 删        /// <summary>        /// 确定删除一个对象,调用Save方法        /// </summary>        /// <param name="id">一条数据的主键</param>        /// <returns></returns>            public int Delete(int id)        {            using (YKTEntities db = new YKTEntities())            {                this.Delete(db, id);                return Save(db);            }        }        /// <summary>        /// 删除一个角色        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="id">一条角色的主键</param>        public void Delete(YKTEntities db, int id)        {            SMROLETB deleteItem = GetById(db, id);            if (deleteItem != null)            {                db.SMROLETB.DeleteObject(deleteItem);            }        }        /// <summary>        /// 删除对象集合        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="deleteCollection">主键的集合</param>        public void Delete(YKTEntities db, int[] deleteCollection)        {            //数据库设置级联关系,自动删除子表的内容               IQueryable<SMROLETB> collection = from f in db.SMROLETB                                              where deleteCollection.Any(x => x == f.ROLE_ID)                                              select f;            foreach (var deleteItem in collection)            {                db.SMROLETB.DeleteObject(deleteItem);            }        }        #endregion        public void Dispose()        {        }    }}

数据库访问基类BaseRepository,这里使用仓储模式进行设计,如下:

/*Company:EMPEROR*//*Author:Zouqj*//*Date:2014-02-19*/using System.Linq;using System.Data;using System;using System.Data.Common;using System.Data.Objects;using YKT.Model;using System.Linq.Expressions;namespace YKT.DAL{    /// <summary>       /// 实现对数据库的操作(增删改查)的基类         /// </summary>    /// <typeparam name="T">定义泛型,约束其是一个类</typeparam>    public class BaseRepository<T> where T : class    {        public string Start_Time { get { return "Start_Time"; } }        public string End_Time { get { return "End_Time"; } }        public string Start_Int { get { return "Start_Int"; } }        public string End_Int { get { return "End_Int"; } }        public string End_String { get { return "End_String"; } }        public string DDL_String { get { return "DDL_String"; } }        /// <summary>        /// 获取所有        /// </summary>        /// <returns>集合</returns>        public virtual IQueryable<T> GetAll()        {            using (YKTEntities db = new YKTEntities())            {                return GetAll(db);            }        }        /// <summary>        /// 获取所有        /// </summary>        /// <returns>集合</returns>        public virtual IQueryable<T> GetAll(YKTEntities db)        {            return db.CreateObjectSet<T>().AsQueryable();        }        /// <summary>        /// 创建        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="entity">将要创建的对象</param>        public virtual void Create(YKTEntities db, T entity)        {            if (entity != null)            {                //EF4.0的写法   添加实体                db.CreateObjectSet<T>().AddObject(entity);            }        }        /// <summary>        /// 创建        /// </summary>        /// <param name="entity">一个对象</param>        /// <returns></returns>        public virtual int Create(T entity)        {            using (YKTEntities db = new YKTEntities())            {                Create(db, entity);                return this.Save(db);            }        }        /// <summary>        /// 创建对象集合        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="entitys">对象集合</param>        public virtual void Create(YKTEntities db, IQueryable<T> entitys)        {            foreach (var entity in entitys)            {                this.Create(db, entity);            }        }        /// <summary>        /// 编辑一个对象        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="entity">将要编辑的一个对象</param>        public virtual T Edit(YKTEntities db, T entity)        {            db.CreateObjectSet<T>().Attach(entity);            db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);            return entity;        }        /// <summary>        /// 编辑对象集合        /// </summary>        /// <param name="db">实体数据</param>        /// <param name="entitys">对象集合</param>        public virtual void Edit(YKTEntities db, IQueryable<T> entitys)        {            foreach (T entity in entitys)            {                this.Edit(db, entity);            }        }        /// <summary>        /// 提交保存,持久化到数据库        /// </summary>        /// <param name="db">实体数据</param>        /// <returns>受影响行数</returns>        public int Save(YKTEntities db)        {            return db.SaveChanges();        }    }}
视图层:


Index.cshtml:

@using YKT.BLL@using YKT.Common;@model YKT.Model.SMROLETB@{    ViewBag.Title = "角色管理";    Layout = "~/Views/Shared/Base.cshtml";}<script type="text/javascript" language="javascript">    //回车触发查询    $(function () {        document.onkeydown = function (e) {            var ev = document.all ? window.event : e;            if (ev.keyCode == 13) {                flexiQuery();            }        }    });    $(function () {        var flag = window.location.search;        var isSingleSelect = true;        if (flag == "?view=1") {            isSingleSelect = false;        }        var searchH = $("#divQuery").height();        var h = document.documentElement.clientHeight - searchH - 26;        $('#flexigridData').datagrid({            title: '角色', //列表的标题            iconCls: 'icon-site',            //                fit: true, //列表自动适应宽度            width: 'auto',            singleSelect: isSingleSelect, //是否单选行            selectOnCheck: true, //选中行时复选框选中            checkOnSelect: true, //选中复选框时选中行            height: h,            nowrap: false, //True 就会把数据显示在一行里。            striped: true, //True 就把行条纹化。(即奇偶行使用不同背景色)            collapsible: true, //可调节列宽            remoteSort: true, //定义是否从服务器给数据排序。            url: 'SysRole/GetData', //获取数据的url            sortName: 'ROLE_ID', //定义可以排序的列            sortOrder: 'desc', //定义列的排序顺序,只能用 'asc' 或 'desc'            idField: 'ROLE_ID', //标识字段            onDblClickRow: function (rowIndex, rowData) {                getDetail(rowData["ROLE_ID"]);            } //双击显示详情           ,            toolbar: [                   {                       text: '分配权限',                       iconCls: 'icon-search',                       handler: function () {                           flexiSetSysMenu();                       }                   }],            columns: [[                    { field: 'ck', checkbox: true },//复选框{ field: 'ROLE_NAME', title: '@Html.LabelFor(model => model.ROLE_NAME)', width: 125, sortable: true }, { field: 'STATUS', title: '@Html.LabelFor(model => model.STATUS)', width: 80, sortable: true }                    , { field: 'CREATION_TIME', title: '@Html.LabelFor(model => model.CREATION_TIME)', width: 130, sortable: true                    , formatter: function (value, rec) {                        if (value) {                            return dateTimeConvert(value);                        }                    }                    }, { field: 'REMARK', title: '@Html.LabelFor(model => model.REMARK)', sortable: true }                ]],            pagination: true, //在 datagrid 的底部显示分页栏。            rownumbers: true //显示行号的列        });        //如果列表页出现在弹出框中,则只显示查询和选择按钮         var parent = window.dialogArguments; //获取父页面        //异步获取按钮                  if (parent == "undefined" || parent == null) {            //首先获取iframe标签的id值            var iframeid = window.parent.$('#tabs').tabs('getSelected').find('iframe').attr("id");            //然后关闭AJAX相应的缓存            $.ajaxSetup({                cache: false            });            //获取按钮值            $.getJSON("../Home/GetToolbar", { id: iframeid }, function (data) {                if (data == null) {                    return;                }                $('#flexigridData').datagrid("addToolbarItem", data);            });        } else {            //添加选择按钮            $('#flexigridData').datagrid("addToolbarItem", [{ "text": "选择", "iconCls": "icon-ok", handler: function () { flexiSelect(); } }]);        }    });    //“查询”按钮,弹出查询框    function flexiQuery() {        //将查询条件按照分隔符拼接成字符串        var search = "";        $('#divQuery').find(":text,:selected,select,textarea,:hidden,:checked,:password").each(function () {            search = search + this.id + "&" + this.value + "^";        });        //执行查询                                $('#flexigridData').datagrid('reload', { search: search });    }    function resetData() {        $("#ROLE_NAME").val("");        $('#STATUS')[0].selectedIndex = 0;    }    //“选择”按钮,在其他(与此页面有关联)的页面中,此页面以弹出框的形式出现,选择页面中的数据    function flexiSelect() {        var rows = $('#flexigridData').datagrid('getSelections');        if (rows.length == 0) {            $.messager.alert('操作提示', '请选择数据!', 'warning');            return false;        }        var arr = [];        for (var i = 0; i < rows.length; i++) {            arr.push(rows[i].ROLE_ID);        }        arr.push("^");        for (var f = 0; f < rows.length; f++) {            arr.push(rows[f].ROLE_NAME);        }        //主键列和显示列之间用 ^ 分割   每一项用 , 分割        if (arr.length > 0) {//一条数据和多于一条            returnParent(arr.join("&")); //每一项用 & 分割        }    }    //导航到查看详细的按钮    function getView() {        //首先取出来用户选择的数据的ID        var rows = $("#flexigridData").datagrid("getSelections");        //首先取出来值判断用户只能选择一个        if (rows.length != 1) {            $.messager.alert("友情提示", "每次只能修改/浏览一条,你已经选择了<font color='red'  size='6'>" + rows.length + "</font>条", "error");            return;        }        var id = rows[0].ROLE_ID;        getDetail(id);    };    function getDetail(id) {        //处理浏览的信息,弹出浏览狂,然后显示浏览信息的相信信息        $("#DivBrowerRole").dialog('open').dialog('setTitle', '角色浏览信息');        //构造参数发送给后台        $.get("/SysRole/Details", { "id": id }, function (roleInfo) {            $("#v_Name").text(roleInfo.ROLE_NAME);            $("#v_CreateTime").text(dateTimeConvert(roleInfo.CREATION_TIME));            $("#v_CreateUser").text(roleInfo.CreateUserName);            $("#v_UpdateTime").text(dateTimeConvert(roleInfo.UPDATE_TIME));            $("#v_UpdateUser").text(roleInfo.UpdateUserName);            $("#v_Remark").text(roleInfo.REMARK)            $("#v_UserNames").text(roleInfo.SysPersonId);            $("#v_Status").text(roleInfo.StatusName);        });    }    //导航到创建的按钮    function flexiCreate() {        //window.location.href = "../SysRole/Create";        showMyWindow("#myWin", "创建角色", "../SysRole/Create", 680, 316);        return false;    }    //导航到修改的按钮    function flexiModify() {        var arr = $('#flexigridData').datagrid('getSelections');        if (arr.length == 1) {            showMyWindow("#myWin", "修改角色", "../SysRole/Edit/" + arr[0].ROLE_ID, 680, 316);        } else {            $.messager.alert('操作提示', '请选择一条数据!', 'warning');        }        return false;    };    //删除的按钮    function flexiDelete() {        var rows = $('#flexigridData').datagrid('getSelections');        if (rows.length == 0) {            $.messager.alert('操作提示', '请选择数据!', 'warning');            return false;        }        var arr = [];        for (var i = 0; i < rows.length; i++) {            arr.push(rows[i].ROLE_ID);        }        $.messager.confirm('操作提示', "确认删除这 " + arr.length + " 项吗?", function (r) {            if (r) {                $.post("../SysRole/Delete", { query: arr.join(",") }, function (res) {                    if (res == "OK") {                        //移除删除的数据                        $("#flexigridData").datagrid("reload");                        $("#flexigridData").datagrid("clearSelections");                        $.messager.alert('操作提示', '删除成功!', 'info');                    }                    else {                        if (res == "") {                            $.messager.alert('操作提示', '删除失败!请查看该数据与其他模块下的信息的关联,或联系管理员。', 'info');                        }                        else {                            $.messager.alert('操作提示', res, 'info');                        }                    }                });            }        });    };    //分配权限    flexiSetSysMenu = function () {        var arr = $('#flexigridData').datagrid('getSelections');        if (arr.length == 1) {            window.location.href = "../SysRole/SetSysMenu/" + arr[0].ROLE_ID;        } else {            $.messager.alert('操作提示', '请选择一条数据!', 'warning');        }        return false;    };</script><div id="content" region="center" fit="true"><div id="divQuery" style="padding: 5px; font-size: 12px;" title="查询列表" class="easyui-toolbar">    <span>@Html.LabelFor(model => model.ROLE_NAME)</span><input type='text' id='ROLE_NAME' class="easyui-validatebox" />    <span>@Html.LabelFor(model => model.STATUS)</span> <span>@Html.DropDownListFor(model => model.STATUS, SelectListClass.GetStatus(true), false)</span>    <a href="javascript:flexiQuery()" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a>     <a href="javascript:resetData()" class="easyui-linkbutton" data-options="iconCls:'icon-redo'"> 重置</a></div><table id="flexigridData"></table></div><!------------------------弹出角色浏览信息的弹出层----------------------------------><div id="DivBrowerRole" class="easyui-dialog" style="width: 700px; height:260px;    padding: 10px 20px" closed="true" resizable="true" modal="true" buttons="#dlg-buttons">    <fieldset>        <legend>角色浏览信息</legend>        <table id="tblBrower" class="usertableborder2" cellspacing="1" cellpadding="3" width="98%"            align="center" border="0">            <tr class="usertablerow1">                <td class="_width">                    名称:                </td>                <td class="width4">                    <span id="v_Name"></span>                </td>                <td class="width0">                    创建时间:                </td>                <td class="time">                    <span id="v_CreateTime"></span>                </td>                <td class="_width">                    状态:                </td>                <td class="width1">                    <span id="v_Status"></span>                </td>            </tr>            <tr class="usertablerow2">                <td>                    创建人:                </td>                <td>                    <span id="v_CreateUser"></span>                </td>                <td>                    编辑时间:                </td>                <td>                    <span id="v_UpdateTime"></span>                </td>                <td>                    编辑人:                </td>                <td>                    <span id="v_UpdateUser"></span>                </td>            </tr>            <tr class="usertablerow1">                <td nowrap="noWrap">                    描述:                </td>                <td colspan="5" class="remark">                    <div id="v_Remark" style="word-break: break-all">                    </div>                </td>            </tr>            <tr class="usertablerow2">                <td>                    人员:                </td>                <td colspan="5" class="remark">                    <div id="v_UserNames" style="word-break: break-all">                    </div>                </td>            </tr>        </table>    </fieldset></div><!-------------------------创建和修改层----------------------------------><div id="myWin"></div>

Create.cshtml:

@using YKT.BLL;@using YKT.Common.HtmlHelpers;@using YKT.Common;@model YKT.Model.SMROLETB@{    ViewBag.SubTitle = "角色 创建";    Layout = "~/Views/Shared/Save.cshtml";}@Html.ValidationSummary(true, "角色创建不成功. 请修改后重试")@using (Html.BeginForm((string)ViewBag.FormAction, "SysRole",FormMethod.Post,new {id = "form1" })){                  <table id="tbCreate" class="usertableborder" align="center">                    <tr class="usertablerow1">                        <td class="_width">   @Html.LabelFor(model => model.ROLE_NAME):</td>                        <td>                  <input type="text" name="ROLE_NAME" class="easyui-validatebox"  required="true" missingMessage="不能为空" validType="length[0,20]" invalidMessage="长度不可超过20"/>                        </td>                                   <td class="_width">   @Html.LabelFor(model => model.STATUS):</td>                        <td class="width2">                              @Html.RadioButtonListFor(model => model.STATUS, SelectListClass.GetStatus(false), true)                        </td>                    </tr>                    <tr>                        <td>   @Html.LabelFor(model => model.REMARK):</td>                                  <td colspan="2" style="word-break: break-all; overflow-x:hidden;" class="remark">                <textarea  cols="30" name="REMARK" rows="3" class="easyui-validatebox" validType="length[0,100]" invalidMessage="长度不可超过100"></textarea>            </td>            <td></td>                    </tr>                    <tr class="usertablerow1">                        <td>            <a class="anUnderLine" onclick="showModalMany('SysPersonId','../../SysUser?view=1');">                @Html.LabelFor(model => model.SysPersonId)</a></td>                        <td colspan="3">                                  <div class="selectList">            <ul  id="checkSysPersonId">                @if (Model != null && !string.IsNullOrWhiteSpace(Model.SysPersonId))                {                    foreach (var item8 in Model.SysPersonId.Split('^'))                    {                        string[] it = item8.Split('&');                        if (it != null && it.Length == 2 && !string.IsNullOrWhiteSpace(it[0]) && !string.IsNullOrWhiteSpace(it[1]))                        {                                        <li id="@item8"> <img  alt="删除" title="点击删除" onclick="deleteTable('@item8 ','SysPersonId');"  src="../../../Images/deleteimge.png" /> @it[1]</li>                        }                    }                }                </ul>               @Html.HiddenFor(model => model.SysPersonId)            </div>                 </td>                    </tr>                    <tr  class="usertablerow2"><td colspan="4" style="text-align:center; height:30px;">                      <a href='#' onclick='$("form").submit()' class="easyui-linkbutton" data-options="iconCls:'icon-add'">添加</a>                                      <a href='#' onclick="javascript:resetData()" class="easyui-linkbutton" data-options="iconCls:'icon-redo'"> 重置</a>                 <a href='#' onclick="javascript:formClose();" class="easyui-linkbutton" data-options="iconCls:'icon-undo'"> 取消</a>                    </td></tr>                </table>}

Edit.cshtml:

@model YKT.Model.SMROLETB@using YKT.BLL;@using YKT.Common.HtmlHelpers;@using YKT.Common;@{    ViewBag.SubTitle = "修改 角色";    Layout = "~/Views/Shared/Save.cshtml";}@using (Html.BeginForm((string)ViewBag.FormAction, "SysRole",FormMethod.Post,new {id = "form1" })){     @Html.HiddenFor(model => model.ROLE_ID)       @Html.HiddenFor(model => model.CREATION_TIME)@Html.HiddenFor(model => model.CREATION_USER)     <table id="tbEdit" class="usertableborder" align="center">        <tr class="usertablerow1">            <td class="_width">                @Html.LabelFor(model => model.ROLE_NAME):            </td>            <td>            <input type="text" name="ROLE_NAME" value='@Html.ValueFor(model => model.ROLE_NAME)' class="easyui-validatebox"  required="true" missingMessage="不能为空" validType="length[0,20]" invalidMessage="长度不可超过20"/>            </td>            <td class="_width">                @Html.LabelFor(model => model.STATUS):            </td>            <td class="width2">                @Html.RadioButtonListFor(model => model.STATUS, SelectListClass.GetStatus(false), true)            </td>        </tr>        <tr>            <td>                @Html.LabelFor(model => model.REMARK):            </td>            <td colspan="2" style="word-break: break-all;overflow-x:hidden;" class="remark">                <textarea rows="3" cols="30" name="REMARK" class="easyui-validatebox" validType="length[0,100]" invalidMessage="长度不可超过100">@Html.ValueFor(model => model.REMARK)</textarea>            </td>            <td></td>        </tr>        <tr class="usertablerow1">            <td>                     <a class="anUnderLine" onclick="showModalMany('SysPersonId','../../SysUser?view=1');">            @Html.LabelFor(model => model.SysPersonId)        </a>            </td>            <td colspan="3">                  <div class="selectList">            @if (Model != null)            {                string ids8 = string.Empty;                <ul id="checkSysPersonId">                    @foreach (var item8 in Model.SMUSERTB)                    {                        string item81 = string.Empty;                        item81 += item8.USER_ID + "&" + item8.USER_NAME;                        if (ids8.Length > 0)                        {                            ids8 += "^" + item81;                        }                        else                        {                            ids8 += item81;                        }                        <li id="@item81">                            <img  alt="删除" title="点击删除" onclick="deleteTable('@item81','SysPersonId');"  src="../../../Images/deleteimge.png" />                            @item8.USER_NAME</li>                    }                </ul>                <input type="hidden" value="@ids8" name="SysPersonIdOld" id="SysPersonIdOld" />                <input type="hidden" value="@ids8" name="SysPersonId" id="SysPersonId" />            }        </div>            </td>        </tr>        <tr class="usertablerow2">            <td colspan="4" style="text-align: center; height: 30px;">                   <a href='#' onclick='$("form").submit()'  class="easyui-linkbutton" data-options="iconCls:'icon-edit'">修改</a>                                    <a href='#' onclick="javascript:resetData()" class="easyui-linkbutton" data-options="iconCls:'icon-redo'"> 重置</a>                 <a href='#' onclick="javascript:formClose();" class="easyui-linkbutton" data-options="iconCls:'icon-undo'"> 取消</a>            </td>        </tr>    </table>}  

SetSysMenu.cshtml:

@{    ViewBag.Title = "SetSysMenu";    Layout = "~/Views/Shared/Base.cshtml";} <script type="text/javascript">     $(function () {         var h = document.documentElement.clientHeight - 26;         $('#flexigridData').treegrid({             title: ' 当前角色是:@ViewData["myname"]',             iconCls: 'icon-site',             url: '../../SysMenu/GetAllMetadata2/' + $("#SysRoleId").val(),             idField: 'ID',             treeField: 'NAME',             height:h,             rownumbers: true,             toolbar: [                    {                        text: '保存',                        iconCls: 'icon-save',                        handler: function () {                            return getView();                        }                    }, {                        text: '全选',                        iconCls: 'icon-ok',                        handler: function () {                            return flexiCreate();                        }                    }, {                        text: '全不选',                        iconCls: 'icon-remove',                        handler: function () {                            return flexiDelete();                        }                    }, {                        text: '取消',                        iconCls: 'icon-undo',                        handler: function () {                            return flexiModify();                        }                    }],             columns: [[                    { field: 'NAME', title: '菜单', width: 205                                        , formatter: function (value, rec) {                                            if (value) {                                                return '<input id="' + rec.ID + '" type="checkbox">' + (value);                                            }                                        }                    }, { field: 'isCheck', title: '操作', width: 599, formatter: function (value, rec) {    if (value) {        var index = value.split(","); //分割符 , 的位置        if (index[0] == null || index[0] == "undefined" || index[0].length < 1) {            return;        }        var content = ""; //需要添加到check中的内容         for (var i = 0; i < index.length; i++) {            var view = index[i].split('^'); //显示值            if (view != null) {                content += '<input id="' + rec.ID + '^' + view[0] + '" type="checkbox">' + view[1];            }        }        return content;    }}}    ]],             onLoadSuccess: function (row, data) {                 if (data) {                     $.ajaxSetup({                         cache: false //关闭AJAX相应的缓存                     });                     $.getJSON('../../SysMenu/GetAllMetadata23/' + $("#SysRoleId").val(), function (checks) {                         $.each(checks, function (i, item) {                             var c = document.getElementById(item);                             c.checked = true;                         });                     });                 }             }         });     });     //保存     function getView() {         var datas = '';         $("input[type='checkbox']").each(function () {             if ($(this).is(":checked"))                 datas += ',' + $(this).attr('id');         });         $.post("../../SysRole/Save", { id: $("#SysRoleId").val(), ids: datas }, function (res) {             if (res == "OK") {                 $.messager.alert('操作提示', '保存成功!', 'info');             }             else {                 if (res == "") {                     $.messager.alert('操作提示', '保存失败!请联系管理员。', 'info');                 }                 else {                     $.messager.alert('操作提示', res, 'info');                 }             }         });         return false;     }     //全选     function flexiCreate() {         $("input[type='checkbox']").each(function () {             $(this).attr("checked", true);         });         return false;     }     //全不选     function flexiModify() {         window.location.href = "../../SysRole";         return false;     };     //取消     function flexiDelete() {         $("input[type='checkbox']").each(function () {             $(this).attr("checked", false);         });         return false;     };     </script><table id="flexigridData"></table>    <input type="hidden" id="SysRoleId" value="@ViewData["myid"]" />


4 0
原创粉丝点击