1. 程式人生 > >RDIFramework.NET ━ .NET快速信息化系統開發框架 V3.2->Web版本模塊管理界面新增模塊排序功能

RDIFramework.NET ━ .NET快速信息化系統開發框架 V3.2->Web版本模塊管理界面新增模塊排序功能

sin 字符串轉換成對象 utili msg ida code value ddr create

技術分享

  模塊(菜單)的排序是每個系統都必須要有的功能,我們框架模塊的排序在業務邏輯中已經體現。

  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框架官方公眾微信(微信號:rdiframework-net),及時了解最新動態。

  掃描二維碼立即關註

技術分享

RDIFramework.NET ━ .NET快速信息化系統開發框架 V3.2->Web版本模塊管理界面新增模塊排序功能