using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Web.UI.WebControls; namespace FineUIPro.Web { public partial class index : PageBase { #region EnableFStatePersistence /// /// 首页没有回发操作,所以无需在服务器端保存FState /// protected override bool SaveFStateToServer { get { return false; } } #endregion #region Page_Init private string _menuType = "tree"; private string _searchText = ""; // 主选项卡标签页 private string _mainTabs = "multi"; // 示例数 private int _examplesCount = 0; #region Page_Init protected void Page_Init(object sender, EventArgs e) { //////////////////////////////////////////////////////////////// string themeStr = Request.QueryString["theme"]; string menuStr = Request.QueryString["menu"]; string https = ConfigurationManager.AppSettings["Https"]; if (!String.IsNullOrEmpty(themeStr) || !String.IsNullOrEmpty(menuStr)) { if (!String.IsNullOrEmpty(themeStr)) { if (themeStr == "bootstrap1") { themeStr = "bootstrap_pure"; } HttpCookie cookie = new HttpCookie("Theme", themeStr); cookie.Expires = DateTime.Now.AddYears(1); if (https == "true") { cookie.Secure = true; } Response.Cookies.Add(cookie); } if (!String.IsNullOrEmpty(menuStr)) { HttpCookie cookie = new HttpCookie("MenuStyle", menuStr); cookie.Expires = DateTime.Now.AddYears(1); if (https == "true") { cookie.Secure = true; } Response.Cookies.Add(cookie); } PageContext.Redirect("~/default.aspx"); return; } //////////////////////////////////////////////////////////////// // 从Cookie中读取 - 左侧菜单类型 HttpCookie menuCookie = Request.Cookies["MenuStyle"]; if (menuCookie != null) { _menuType = menuCookie.Value; } // 新版首页不再支持手风琴+树控件的情况,这样会增加复杂度 if (_menuType == "accordion") { _menuType = "tree"; } // 从Cookie中读取 - 搜索文本 HttpCookie searchText = Request.Cookies["SearchText"]; if (searchText != null) { _searchText = HttpUtility.UrlDecode(searchText.Value); } // 从Cookie中读取 - 是否单标签页 HttpCookie mainTabs = Request.Cookies["MainTabs"]; if (mainTabs != null) { _mainTabs = mainTabs.Value; } InitTreeMenu(); } #endregion #region InitAccordionMenu private Accordion InitAccordionMenu() { Accordion accordionMenu = new Accordion(); accordionMenu.ID = "accordionMenu"; accordionMenu.EnableFill = false; accordionMenu.ShowBorder = false; accordionMenu.ShowHeader = false; leftPanel.Items.Add(accordionMenu); var dt = GetNewMenu("0"); foreach (var dr in dt) { AccordionPane accordionPane = new AccordionPane(); accordionPane.Title = dr.MenuName; //accordionPane.Layout = Layout.Fit; accordionPane.ShowBorder = false; accordionPane.BodyPadding = "2px 0 0 0"; accordionMenu.Items.Add(accordionPane); Tree innerTree = new Tree(); innerTree.ShowBorder = false; innerTree.ShowHeader = false; innerTree.EnableIcons = true; innerTree.AutoScroll = true; innerTree.EnableSingleClickExpand = true; accordionPane.Items.Add(innerTree); BoundTree(innerTree.Nodes, dr.MenuId); } return accordionMenu; } /// /// 加载树 /// /// /// private void BoundTree(TreeNodeCollection nodes, string menuId) { var dt = GetNewMenu(menuId); if (menuId == "0") { if (dt.Count() > 0) { TreeNode tn = null; foreach (var dr in dt) { tn = new TreeNode(); //tn.Text = dr.MenuName; tn.Text = dr.MenuEnName; tn.NodeID = dr.MenuId; if (this.GetLanguage == "en-US") { tn.Text = dr.MenuEnName; } if (dr.SuperMenu != "0" && !string.IsNullOrEmpty(dr.Url)) { tn.NavigateUrl = dr.Url; } nodes.Add(tn); BoundTree(tn.Nodes, dr.MenuId); } } } else { if (dt.Count() > 0) { TreeNode tn = null; foreach (var dr in dt) { tn = new TreeNode(); //tn.Text = dr.MenuName; tn.Text = dr.MenuEnName; tn.NodeID = dr.MenuId; if (this.GetLanguage == "en-US") { tn.Text = dr.MenuEnName; } if (dr.SuperMenu != "0" && !string.IsNullOrEmpty(dr.Url)) { if (dr.Url.Contains("default.aspx")) { //tn.NavigateUrl=ResolveUrl("~/"+dr.Url); } else { tn.NavigateUrl = dr.Url; } } nodes.Add(tn); BoundTree(tn.Nodes, dr.MenuId); } } } } #endregion #region InitTreeMenu private Tree InitTreeMenu() { var dt = GetNewMenu("0"); BoundTree(treeMenu.Nodes, "0"); return treeMenu; } /// /// 得到菜单方法 /// /// /// private List GetNewMenu(string parentId) { List menu = new List(); var menuList = BLL.CommonService.GetMenuByRoleRower(this.CurrUser.UserId); if (menuList.Count() > 0) { menu = menuList.Where(x => x.SuperMenu == parentId).ToList(); } return menu; } #endregion #region 获取用户系统权限 /// /// 用户ID /// /// //private void GetUserLoginSystem(string userId) //{ // var user = BLL.Sys_UserService.GetUsersByUserId(userId); //this.btnGDAZ.Visible = false; //this.btnYLRQ.Visible = false; //if (user != null && user.AllowLoginSystem!=null) //{ // string[] systems = user.AllowLoginSystem.Split('|'); // foreach (string sys in systems) // { //if (sys == BLL.Const.System_2) //{ // btnGDAZ.Visible = true; //} //if (sys == BLL.Const.System_4) //{ // btnYLRQ.Visible = true; //} // } // } //} #endregion #endregion #region Page_Load protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { InitMenuStyleButton(); InitMenuDisplayModeButton(); InitMenuRegionButton(); hfExamplesCount.Text = _examplesCount.ToString(); // 为CSS样式文件添加版本号,防止版本更新时客户端缓存 linkIndexCSS.Href = "~/res/css/index.css?v" + GlobalConfig.ProductVersion; linkMobileViewCss.Href = "~/res/css/mobileview.css?v" + GlobalConfig.ProductVersion; litScriptIndex.Text = String.Format("", ResolveClientUrl("~/res/js/index.js?v" + GlobalConfig.ProductVersion)); // 单标签页 //if (_mainTabs == "single") //{ // mainTabStrip.ShowTabHeader = false; //} btnUser.Text = this.CurrUser.UserName; } } private void InitMenuStyleButton() { string menuStyle = "tree"; HttpCookie menuStyleCookie = Request.Cookies["MenuStyle"]; if (menuStyleCookie != null) { menuStyle = menuStyleCookie.Value; } SetSelectedMenuItem(MenuStyle, menuStyle); } private void InitMenuDisplayModeButton() { string displayMode = "normal"; HttpCookie displayModeCookie = Request.Cookies["DisplayMode"]; if (displayModeCookie != null) { displayMode = displayModeCookie.Value; } SetSelectedMenuItem(MenuDisplayMode, displayMode); } private void InitMenuRegionButton() { string mainTabs = "multi"; HttpCookie mainTabsCookie = Request.Cookies["MainTabs"]; if (mainTabsCookie != null) { mainTabs = mainTabsCookie.Value; } SetSelectedMenuItem(MenuMainTabs, mainTabs); } private void SetSelectedMenuItem(MenuButton menuButton, string selectedDataTag) { foreach (MenuItem item in menuButton.Menu.Items) { MenuCheckBox checkBox = (item as MenuCheckBox); if (checkBox != null) { checkBox.Checked = checkBox.AttributeDataTag == selectedDataTag; } } } #endregion } }