RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本模块管理界面新增模块排序功能

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/75913764 模块(菜单)的排序是每个系统都必须要有的功能,我们框架模块的排序在业务逻辑中已经体现。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/75913764


模块(菜单)的排序是每个系统都必须要有的功能,我们框架模块的排序在业务逻辑中已经体现。

WinForm版本可以直接在界面上对模块进行排序以控制模块展示的顺序。Web版本在3.2版本中也新增了直接可以模块管理界面对模块进行排序的人性化操作,大大的方便了管理人员。模块的排序在模块管理主界面分页按钮的右侧如下图所示。


三个按钮功能分别为:上移、下移、确认修改

        WebMVC部分,模块排序功能代码参考:

	/// <summary>
        /// 保存模块排序功能
        /// </summary>
        /// <param name="parentId">父节点</param>
        /// <param name="rows">数据行</param>
        /// <returns></returns>
        [HttpPost]
        [ValidateInput(false)]
        [LoginAuthorize]
        public virtual ActionResult SaveSort(string parentId,string rows)
        {
            string message = RDIFrameworkMessage.MSG0001;
            try
            {
                if (!IsAuthorized("ModuleManagement.Edit"))
                {
                    return Content(new JsonMessage { Success = false, Data = "0", Message = "你没有权限操作!" }.ToString());
                }
                
                int returnUpdateValue = 0;
                RDIFramework.Utilities.UserInfo curUser = ManageProvider.Provider.Current();
                if (!string.IsNullOrEmpty(parentId))
                {
                    var dtModule = RDIFrameworkService.Instance.ModuleService.GetDTByParent(curUser, parentId);
                    var moduleOldSort = new List<KeyValuePair<string, object>>();
                    if (dtModule != null && dtModule.Rows.Count > 0)
                    {
                        moduleOldSort.AddRange(from DataRow row in dtModule.Rows select BaseEntity.Create<PiModuleEntity>(row) into moduleEntity select new KeyValuePair<string, object>(moduleEntity.Id, moduleEntity.SortCode));
                    }

                    var moduleNewSort = new List<KeyValuePair<string, object>>();
                    //把json字符串转换成对象
                    List<PiModuleEntity> listRows = rows?.JonsToList<PiModuleEntity>();
                    if (listRows != null && listRows.Count > 0)
                    {
                        moduleNewSort.AddRange(listRows.Select(entity => new KeyValuePair<string, object>(entity.Id, entity.SortCode)));
                    }

                    if (moduleNewSort.Count > 0 && moduleOldSort.Count > 0 && moduleNewSort.Count == moduleOldSort.Count)
                    {
                        for (int index = 0; index < moduleOldSort.Count; index++)
                        {
                            moduleOldSort[index] = moduleNewSort[index];
                        }

                        foreach (var parElement in moduleOldSort)
                        {
                            PiModuleEntity updateEntity = RDIFrameworkService.Instance.ModuleService.GetEntity(curUser,parElement.Key);
                            if (updateEntity.SortCode != null && parElement.Value != null && !updateEntity.SortCode.Equals(BusinessLogic.ConvertToInt32(parElement.Value)))
                            {
                                updateEntity.SortCode = BusinessLogic.ConvertToInt32(parElement.Value);
                                string statusCode;
                                string statusMessage;
                                RDIFrameworkService.Instance.ModuleService.Update(curUser, updateEntity, out statusCode,out statusMessage);
                                returnUpdateValue += statusCode == RDIFramework.Utilities.StatusCode.OKUpdate.ToString()? 1: 0;
                            }
                        }

                        if (returnUpdateValue > 0)
                        {
                            message = "操作提示:" + " <br>排序保存成功,更新数据:" + returnUpdateValue.ToString() + "条。";
                            return Content(new JsonMessage {Success = true, Data = "1", Message = message}.ToString());
                        }
                        message = "操作提示:" + " <br>没有排序数据被修改。";
                        return Content(new JsonMessage { Success = true, Data = "1", Message = message }.ToString());
                    }

                    message = "操作提示:" + " <br>当前操作的记录条件与原记录条件不符。";
                    return Content(new JsonMessage { Success = false, Data = "0", Message = message }.ToString());
                }
                message = "操作提示:" + " <br>请选择一个父级节点再操作。";
                return Content(new JsonMessage { Success = false, Data = "0", Message = message }.ToString());
            }
            catch (Exception ex)
            {
                return Content(new JsonMessage { Success = false, Data = "0", Message = "操作失败:" + ex.Message }.ToString());
            }
        }

  相关文章:    

     RDIFramework 平台代码生成器V3.2 发布版 

   RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录  

   RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍 

  一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。 

      RDIFramework.net官方网站:http://www.rdiframework.net/ 

      RDIFramework.Net官方博客:http://blog.rdiframework.net/ 

      同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏! 

      RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!  

  欢迎关注RDIFramework.NET框架官方公众微信(微信号:guosisoft),及时了解最新动态。

   扫描二维码立即关注

 


相关文章
|
10天前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
23 1
|
13天前
|
前端开发 开发者 容器
【Web布局的革命】探索CSS Grid栅格系统,打造未来网页设计!
【8月更文挑战第25天】在网页设计领域,布局至关重要。传统的布局方法难以满足复杂需求,CSS Grid 栅格系统因此诞生。它是一种二维布局模式,能直接控制行和列,简化复杂网格的设计。通过定义 `display: grid;` 创建网格容器,并利用 `grid-template-columns` 和 `grid-template-rows` 设置行列尺寸,轻松实现响应式布局。此外,CSS Grid 支持高级功能,如网格区域划分和对齐设置,极大提升了布局的灵活性和创意空间。随着浏览器兼容性的增强,CSS Grid 必将成为未来网页设计的关键技术之一。
33 1
|
14天前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
18天前
|
Java Docker 微服务
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。每个服务负责特定功能,通过轻量通信机制协作。利用Spring Boot与Spring Cloud等框架可简化开发流程,支持模块化设计、独立部署、技术多样性和容错性,适应快速迭代的需求。
58 1
|
23天前
|
XML 开发框架 .NET
ASP.NET Web Api 如何使用 Swagger 管理 API
ASP.NET Web Api 如何使用 Swagger 管理 API
|
14天前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
|
14天前
|
监控 前端开发 Java
揭秘Web开发神器:Servlet、过滤器、拦截器、监听器如何联手打造无敌博客系统,让你的用户欲罢不能!
【8月更文挑战第24天】在Java Web开发中,Servlet、过滤器(Filter)、拦截器(Interceptor,特指Spring MVC中的)及监听器(Listener)协同工作,实现复杂应用逻辑。以博客系统为例,Servlet处理文章详情请求,过滤器(如LoginFilter)检查登录状态并重定向,Spring MVC拦截器(如LoggingInterceptor)提供细粒度控制(如日志记录),监听器(如SessionListener)监控会话生命周期事件。这些组件共同构建出高效、有序的Web应用程序。
24 0
|
23天前
|
JSON API C#
闲话 .NET(6):.NET Core 各个版本的特性
闲话 .NET(6):.NET Core 各个版本的特性
|
27天前
|
XML 开发框架 数据格式
.Net Core 开发框架,支持多版本的类库
.Net Core 开发框架,支持多版本的类库
29 0
|
29天前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
53 0
下一篇
DDNS