/// <summary> /// 渲染 HTML 之前调用(页面第一次加载或者普通回发) /// </summary> protected override void OnFirstPreRender() { base.OnFirstPreRender(); #region Check Parent Accordion parentControl = Parent as Accordion; if (parentControl == null) { throw new Exception("AccordionPane must inside the control Accordion!"); } if (parentControl.AutoPostBack) { OB.Listeners.AddProperty("expand", JsHelper.GetFunction(parentControl.GetPostBackEventReference("PaneIndexChanged")), true); } #endregion //#region AutoHeight //// 如果要充满整个Accordion,则设置每个AccordionPanel的AutoHeight=false //if (parentControl.EnableFill) //{ // OB.AddProperty("autoHeight", false); //} //#endregion string renderScript = String.Empty; #region oldcode //// 如果启用高亮显示选中的,则在每个AccordionPanel的折叠展开时都要改变高亮选中的状态 //if (EnableLargeHeader && EnableHightlight) //{ // renderScript += String.Format("{0}.header.addClassOnOver('{1}');", XID, ACCORDION_HEADER_HOVER); // // 如果这个AccordionPanel需要高亮显示 // if (parentControl.ActiveIndex >= 0 && parentControl.ActiveIndex < parentControl.Panes.Count) // { // if (parentControl.Panes[parentControl.ActiveIndex] == this) // { // //OB.AddProperty(OptionName.Cls, ACCORDION_BIG_HEADER_SELECT_CLASS); // renderScript += String.Format("{0}.header.addClass('{1}');", XID, ACCORDION_HEADER_SELECT); // } // } // OB.Listeners.RemoveProperty("collapse"); // OB.Listeners.RemoveProperty("expand"); // OB.Listeners.AddProperty("collapse", String.Format("function(panel){{Ext.get('{0}').dom.value=true;X.{1}.header.removeClass('{2}');}}", CollapsedHiddenFieldID, XID, ACCORDION_HEADER_SELECT), true); // OB.Listeners.AddProperty("expand", String.Format("function(panel){{Ext.get('{0}').dom.value=false;X.{1}.header.addClass('{2}');}}", CollapsedHiddenFieldID, XID, ACCORDION_HEADER_SELECT), true); //} #endregion #region Links //if (Links.Count > 0) //{ // OB.RemoveProperty("items"); // StringBuilder sb = new StringBuilder(); // sb.Append("<ul class=\"f-accrodion-link-ul\">"); // foreach (AccordionLink link in Links) // { // #region li // HtmlNodeBuilder nb = new HtmlNodeBuilder("a"); // nb.SetProperty("id", link.ClientID); // if (!String.IsNullOrEmpty(link.OnClientClick)) // { // nb.SetProperty("onclick", String.Format("javascript:{0}", link.OnClientClick)); // } // if (!String.IsNullOrEmpty(link.NavigateUrl)) // { // nb.SetProperty("href", ResolveUrl(link.NavigateUrl)); // if (!String.IsNullOrEmpty(link.Target)) // { // nb.SetProperty("target", link.Target); // } // } // nb.SetProperty("style", "display:block;cursor:pointer;"); // string content = String.Empty; // if (!String.IsNullOrEmpty(link.IconUrl)) // { // content += String.Format("<img src=\"{0}\" align=\"bottom\" alt=\"\" />", ResolveUrl(link.IconUrl)); // } // content += " " + link.Text; // nb.InnerProperty = content; // #endregion // sb.AppendFormat("<li {1}>{0}</li>", nb.ToString(), link.Selected ? "class=\"f-accrodion-link-select\"" : ""); // } // sb.Append("</ul>"); // OB.AddProperty("html", sb.ToString()); // // 注册所有链接的脚本 // // 所有的li,鼠标移动上去是一种样式,鼠标移开又是另外一种样式 // string hoverScript = "ele = Ext.get(ele);"; // hoverScript += "ele.on('mouseover',function(){Ext.get(this.findParentNode('li')).addClass('box-accrodion-link-hover');},ele);"; // hoverScript += "ele.on('mouseout',function(){Ext.get(this.findParentNode('li')).removeClass('box-accrodion-link-hover');},ele);"; // //string clickScript = String.Empty; // //clickScript += String.Format("Ext.each(X.{0}.el.query('ul.box-accrodion-link-ul li'),function(ele){{Ext.get(ele).removeClass('box-accrodion-link-select');}});", parentControl.ClientJavascriptID); // //clickScript += "Ext.get('{0}').addClass('box-accrodion-link-select');"; // string clickScript = String.Format("function(){{X.{0}.box_active(ele.id);}}", parentControl.XID); // hoverScript += "ele.on('click'," + clickScript + ");"; // renderScript += String.Format("Ext.each(X.{0}.el.query('ul.box-accrodion-link-ul li a'),function(ele){{{1}}});", XID, hoverScript); //} #endregion if (!String.IsNullOrEmpty(renderScript)) { renderScript = JsHelper.GetDeferScript(renderScript, 100); OB.Listeners.AddProperty("render", JsHelper.GetFunction(renderScript), true); } string jsContent = String.Format("var {0}=Ext.create('Ext.panel.Panel',{1});", XID, OB.ToString()); AddStartupScript(jsContent); }
private Accordion InitAccordionMenu() { Accordion accordionMenu = new Accordion(); accordionMenu.ID = "accordionMenu"; accordionMenu.EnableFill = true; accordionMenu.ShowBorder = false; accordionMenu.ShowHeader = false; Region2.Items.Add(accordionMenu); AccordionPane accordionPane; DataTable dt = App_Com.Sys_User.GetSys_Menu(); foreach (DataRow dr in dt.Select("IsNull(PID,'')=''", "RID")) { accordionPane = new AccordionPane(); accordionPane.Title = dr["MenuName"].ToString(); accordionPane.Layout = Layout.Fit; accordionPane.ShowBorder = false; accordionPane.BodyPadding = "2px 0 0 0"; accordionMenu.Items.Add(accordionPane); Tree treeMenu = new Tree(); treeMenu.EnableArrows = true; treeMenu.ShowBorder = false; treeMenu.ShowHeader = false; treeMenu.EnableIcons = false; treeMenu.AutoScroll = true; BuildTree(dt, dr["RID"].ToString(), treeMenu, null); accordionPane.Items.Add(treeMenu); } return accordionMenu; }
/// <summary> /// 构造函数 /// </summary> /// <param name="parent">父控件实例</param> public AccordionPaneCollection(Accordion parent) : base(parent) { }
/// <summary> /// 创建手风琴菜单 /// </summary> /// <param name="menus"></param> /// <returns></returns> private Accordion InitAccordionMenu(List<Menu> menus) { Accordion accordionMenu = new Accordion(); accordionMenu.ID = "accordionMenu"; accordionMenu.EnableFill = true; accordionMenu.ShowBorder = false; accordionMenu.ShowHeader = false; regionLeft.Items.Add(accordionMenu); foreach (var menu in menus.Where(m => m.Parent == null)) { AccordionPane accordionPane = new AccordionPane(); accordionPane.Title = menu.Name; accordionPane.Layout = Layout.Fit; accordionPane.ShowBorder = false; accordionPane.BodyPadding = "2px 0 0 0"; accordionMenu.Items.Add(accordionPane); Tree innerTree = new Tree(); innerTree.EnableArrows = true; innerTree.ShowBorder = false; innerTree.ShowHeader = false; innerTree.EnableIcons = false; innerTree.AutoScroll = true; accordionPane.Items.Add(innerTree); // 生成树 ResolveMenuTree(menus, menu, innerTree.Nodes); } return accordionMenu; }
private Accordion InitAccordionMenu() { string rightstr = BaseRightStr; Accordion accordionMenu = new Accordion(); accordionMenu.ID = "accordionMenu"; accordionMenu.EnableFill = true; accordionMenu.ShowBorder = false; accordionMenu.ShowHeader = false; Region2.Items.Add(accordionMenu); foreach (sys_Menu m in sysMenuList.Where(p => p.PId == "0").OrderBy(p => p.SortIndex).ToList()) { if (!rightstr.Contains(m.MenuCode + "-0")) continue; AccordionPane accordionPane = new AccordionPane(); accordionPane.Title = m.MenuName; accordionPane.Layout = Layout.Fit; accordionPane.ShowBorder = false; accordionPane.BodyPadding = "2px 0 0 0"; accordionPane.IconUrl = m.Ico; accordionMenu.Items.Add(accordionPane); Tree innerTree = new Tree(); innerTree.EnableArrows = true; innerTree.ShowBorder = false; innerTree.ShowHeader = false; innerTree.EnableIcons = false; innerTree.AutoScroll = true; accordionPane.Items.Add(innerTree); CreateNode(m.Id, innerTree.Nodes, rightstr); } return accordionMenu; }