modulesettings.aspx.cs

来自「三层架构的.net源码三层架构的.net源码」· CS 代码 · 共 230 行

CS
230
字号
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace MyStarterKit.Portal.Web
{
	/// <summary>
	/// ModuleSettings 的摘要说明。
	/// </summary>
	public class ModuleSettingsPage : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.TextBox moduleTitle;
		protected System.Web.UI.WebControls.TextBox cacheTime;
		protected System.Web.UI.WebControls.CheckBoxList authEditRoles;
		protected System.Web.UI.WebControls.CheckBox showMobile;
		protected System.Web.UI.WebControls.LinkButton ApplyButton;

		int moduleId = 0;
		int tabId = 0;

		private void Page_Load(object sender, System.EventArgs e)
		{
			// 用户角色为Admins的才能访问该管理模块,否则重定向到EditAccessDenied.aspx
			if (PortalSecurity.IsInRoles("Admins") == false) 
			{
				Response.Redirect("~/Admin/EditAccessDenied.aspx");
			}

			// 当前编辑的模块Id
			if (Request.Params["mid"] != null) 
			{
				moduleId = Int32.Parse(Request.Params["mid"]);
			}
			// 当前编辑的标签Id
			if (Request.Params["tabid"] != null) 
			{
				tabId = Int32.Parse(Request.Params["tabid"]);
			}

			if (!Page.IsPostBack) 
			{
				BindData();
			}
		}

		/// <summary>
		/// 为页面中的控件赋初值
		/// </summary>
		private void BindData() 
		{

			// 从HttpContext中获取全局设置对象
			PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];

			object value = GetModule();
			// 当前所编辑的模块信息不为空时
			if (value != null) 
			{
            
				ModuleSettings m = (ModuleSettings) value;
            
				//给标题,缓存时间,是否在移动设备浏览器上显示赋初值
				moduleTitle.Text = m.ModuleTitle;
				cacheTime.Text = m.CacheTime.ToString();
				showMobile.Checked = m.ShowMobile;

				// 读角色信息,显示授权角色复选框列表
				RolesDB rolesObj = new RolesDB();
				SqlDataReader roles = rolesObj.GetPortalRoles(portalSettings.PortalId);

				// 清除已经存在的角色复选框列表项
				authEditRoles.Items.Clear();
				// 给出默认的All Users项
				ListItem allItem = new ListItem();
				allItem.Text = "All Users";
				// 如果该标签可以被All Users修改,则勾选它
				if (m.AuthorizedEditRoles.LastIndexOf("All Users") > -1) 
				{
					allItem.Selected = true;
				}
				//将All Users项添加到复选列表中
				authEditRoles.Items.Add(allItem);
				// 循环添加从数据库中读取的角色信息到复选列表中
				while(roles.Read()) 
				{

					ListItem item = new ListItem();
					item.Text = (String) roles["RoleName"];
					item.Value = roles["RoleID"].ToString();

					if ((m.AuthorizedEditRoles.LastIndexOf(item.Text)) > -1) 
					{
						item.Selected = true;
					}

					authEditRoles.Items.Add(item);
				}
			}
		}

		/// <summary>
		/// 获取所编辑的模块信息
		/// </summary>
		/// <returns></returns>
		private ModuleSettings GetModule() 
		{
    
			// Obtain PortalSettings for this tab
			PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];

			// Obtain selected module data
			foreach (ModuleSettings _module in portalSettings.ActiveTab.Modules) 
			{
            
				if (_module.ModuleId == moduleId)
					return _module;
			}
			return null;
		}

		/// <summary>
		/// 提交
		/// </summary>
		/// <param name="Sender"></param>
		/// <param name="e"></param>
		private void ApplyChanges_Click(Object Sender, EventArgs e) 
		{
    
			// 从HttpContext中获取全局设置对象
			PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];

			object value = GetModule();
			if (value != null) 
			{
            
				ModuleSettings m = (ModuleSettings) value;
            
				// 读取可变更及该模块的角色信息
				String editRoles = "";

				foreach(ListItem item in authEditRoles.Items) 
				{

					if (item.Selected == true) 
					{
						editRoles = editRoles + item.Text + ";";
					}
				}
            
				// 更新模块信息
				Configuration config = new Configuration();
				config.UpdateModule(moduleId, m.ModuleOrder, m.PaneName, moduleTitle.Text, Int32.Parse(cacheTime.Text), editRoles, showMobile.Checked);

				#region 多余代码
				/* 多余代码
				// 赋新值
				moduleTitle.Text = m.ModuleTitle;
				cacheTime.Text = m.CacheTime.ToString();

				
				RolesDB rolesObj = new RolesDB();
				SqlDataReader roles = rolesObj.GetPortalRoles(portalSettings.PortalId);

				// Clear existing items in checkboxlist
				authEditRoles.Items.Clear();

				ListItem allItem = new ListItem();
				allItem.Text = "All Users";

				if (m.AuthorizedEditRoles.LastIndexOf("All Users") > -1) 
				{
					allItem.Selected = true;
				}

				authEditRoles.Items.Add(allItem);

				while(roles.Read()) 
				{

					ListItem item = new ListItem();
					item.Text = (String) roles["RoleName"];
					item.Value = roles["RoleID"].ToString();

					if ((m.AuthorizedEditRoles.LastIndexOf(item.Text)) > -1) 
					{
						item.Selected = true;
					}

					authEditRoles.Items.Add(item);
				}
				*/
				#endregion
			}

			// 重定向到模块所在标签的编辑页
			Response.Redirect("TabLayout.aspx?tabid=" + tabId);
		}


		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.ApplyButton.Click += new System.EventHandler(this.ApplyChanges_Click);
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?