FineUI 官方论坛

标题: 如何使用Accordion控件打开窗口与官方示例一样 [打印本页]

作者: 幻之达    时间: 2012-6-29 01:48
标题: 如何使用Accordion控件打开窗口与官方示例一样
请看截图,我用的是Accordion控件,官方示例是树控件

[attach]770[/attach]
[attach]771[/attach]
[attach]769[/attach]
打开窗口是新开窗口。想要的结果是与官方标示例一样。如何实现



作者: sanshi    时间: 2012-6-29 09:36
先收藏....
作者: GardeniaHong    时间: 2012-6-29 09:48
这样吗???
作者: 幻之达    时间: 2012-7-1 21:18
GardeniaHong 发表于 2012-6-29 09:48
这样吗???

对,就是想要的结果
作者: 这里不能为空    时间: 2012-7-4 05:34
我看官方的源码上是使用左侧菜单js方式打开右侧tab的。但是这个js是非主流的,不好找。我想用后台代码页是可以实现的,我没试过,你找到Tab相关的事例自己试试看。
作者: 大鸟打小鸟    时间: 2012-7-4 10:41
本帖最后由 大鸟打小鸟 于 2012-7-4 10:43 编辑

这个我这样弄的,如果不需要Tree就用一层Tree,如果需要多层,就可以有父子节点,设置Tree 的 node onclientclick就行,node.NavigateUrl不要设置
node.OnClientClick = _tabStrip.GetAddTabReference("tab_" + nodeID,NavigateUrl, NodeName,IconHelper.GetIconUrl(Icon.Application), true);
[attach]784[/attach]
作者: 快乐一家    时间: 2012-8-1 05:30
也在找實現這個效果的方法,高人指教一下。
作者: 幻之达    时间: 2012-8-1 06:56
快乐一家 发表于 2012-8-1 05:30
也在找實現這個效果的方法,高人指教一下。

好像是控件还没提供这样的功能
作者: Panda    时间: 2012-8-1 07:23
       protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                BindMenu();            }        }
        /// <summary>        /// 绑定手风琴目录        /// </summary>        protected void BindMenu()        {            //ds就是就是数据库里查询出来的菜单数据,这里用 new DataSet()代替,具体的自己写;            DataSet ds = new DataSet();
            ExtAspNet.Accordion accordion = new ExtAspNet.Accordion();            Region2.Items.Add(accordion);            accordion.ShowBorder = false;            accordion.ShowHeader = false;                        //找出所有手风琴节点            DataRow[] drParent = ds.Tables[0].Select("PrentID=0");                        遍历创建每个手风琴节点            foreach (DataRow dr in drParent)            {                ExtAspNet.AccordionPane pane = new ExtAspNet.AccordionPane();                accordion.Panes.Add(pane);                pane.Title = dr["NAME"].ToString();                pane.ShowBorder = false;                                //创建该节点下的菜单目录,并将该手风琴节点的ID作为下属菜单的父节点                CreateTree(ds, dr["ID"].ToString(), pane);            }        }
        /// <summary>        /// 绑定树状目录        /// </summary>        protected void CreateTree(DataSet ds, string PrentID, ExtAspNet.AccordionPane pane)        {            DataRow[] drParent = ds.Tables[0].Select("PrentID=" + PrentID+ "");            ExtAspNet.Tree tree = new ExtAspNet.Tree();            pane.Items.Add(tree);            tree.ShowBorder = false;            tree.ShowHeader = false;            tree.AutoScroll = false;            tree.EnableArrows = true;
            foreach (DataRow dr in drParent)            {                ExtAspNet.TreeNode TN = new ExtAspNet.TreeNode();                TN.NodeID = dr["ID"].ToString();                TN.Text = dr["NAME"].ToString();                TN.OnClientClick = mainTabStrip1.GetAddTabReference(dr["ID"].ToString(), dr["URL"].ToString() ,  dr["NAME"].ToString(), true);                TN.EnablePostBack = false;                tree.Nodes.Add(TN);                               CreateNodes(ds, dr["ID"].ToString(), TN);            }        }
        /// <summary>        /// 绑定子目录        /// </summary>        protected void CreateNodes(DataSet ds, string PrentID, ExtAspNet.TreeNode TN)        {            DataRow[] drParent = ds.Tables[0].Select("PrentID=" + PrentID+ "");
            foreach (DataRow dr in drParent)            {                ExtAspNet.TreeNode tn = new ExtAspNet.TreeNode();                tn.Text = dr["NAME"].ToString();                tn.NodeID = dr["ID"].ToString();                TN.OnClientClick = mainTabStrip1.GetAddTabReference(dr["ID"].ToString(), dr["PATH"].ToString(), dr["NAME"].ToString(), true);                TN.EnablePostBack = false;                TN.Nodes.Add(tn);                                //循环子节点看看是否还有下属节点                CreateNodes(ds, dr["ID"].ToString(), tn);            }        }


作者: Panda    时间: 2012-8-1 07:24
{:soso_e119:}伤不起啊。代码全乱了。你复制完在VS里面自动排版吧。。。应该就是你要的东西
作者: 快乐一家    时间: 2012-8-1 08:00
動態創建的Tab的內容是不是也要動態創建?
作者: Panda    时间: 2012-8-1 08:21
快乐一家 发表于 2012-8-1 08:00
動態創建的Tab的內容是不是也要動態創建?

一个TAB就是一个页面。所以这个页面的内容是什么就是什么
作者: support    时间: 2012-8-10 09:53
已经完成部分编码,喜欢尝鲜的网友可以自己下载源代码编译:80928

[attach]919[/attach]


作者: fat    时间: 2012-8-11 02:46
能否再生成下一级树菜单~
作者: sanshi    时间: 2012-8-11 03:16
fat 发表于 2012-8-11 02:46
能否再生成下一级树菜单~

必须的,会加上右上角的配置项
作者: 隨風往事    时间: 2012-8-13 11:18
  1.   protected void Page_Load(object sender, EventArgs e)   
  2.              {            if (!IsPostBack)            
  3.              {                BindMenu();            }   
  4.              }
  5.        // <summary>        /// 绑定手风琴目录      
  6.         //</summary>      
  7.          protected void BindMenu()   
  8.          {            //ds就是就是数据库里查询出来的菜单数据,这里用 new DataSet()代替,具体的自己写;           
  9.              DataSet ds = new DataSet();
  10.             ExtAspNet.Accordion accordion = new ExtAspNet.Accordion();        
  11.              Region2.Items.Add(accordion);      
  12.              accordion.ShowBorder = false;   
  13.              accordion.ShowHeader = false;            
  14.              //找出所有手风琴节点         
  15.              DataRow[] drParent = ds.Tables[0].Select("PrentID=0");  
  16.              //遍历创建每个手风琴节点         
  17.              foreach (DataRow dr in drParent)         
  18.              {                ExtAspNet.AccordionPane pane = new ExtAspNet.AccordionPane();        
  19.                  accordion.Panes.Add(pane);           
  20.                  pane.Title = dr["NAME"].ToString();      
  21.                  pane.ShowBorder = false;                              
  22.                  //创建该节点下的菜单目录,并将该手风琴节点的ID作为下属菜单的父节点         
  23.                  CreateTree(ds, dr["ID"].ToString(), pane);            }        }
  24.      // 绑定树状目录        /// </summary>     
  25.          protected void CreateTree(DataSet ds, string PrentID, ExtAspNet.AccordionPane pane)      
  26.          {            DataRow[] drParent = ds.Tables[0].Select("PrentID=" + PrentID+ "");         
  27.              ExtAspNet.Tree tree = new ExtAspNet.Tree();        
  28.              pane.Items.Add(tree);         
  29.              tree.ShowBorder = false;        
  30.              tree.ShowHeader = false;      
  31.              tree.AutoScroll = false;           
  32.              tree.EnableArrows = true;
  33.             foreach (DataRow dr in drParent)        
  34.             {                ExtAspNet.TreeNode TN = new ExtAspNet.TreeNode();     
  35.                 TN.NodeID = dr["ID"].ToString();           
  36.                 TN.Text = dr["NAME"].ToString();           
  37.                 TN.OnClientClick = mainTabStrip1.GetAddTabReference(dr["ID"].ToString(), dr["URL"].ToString() ,  dr["NAME"].ToString(), true);      
  38.                 TN.EnablePostBack = false;         
  39.                 tree.Nodes.Add(TN);            
  40.                 CreateNodes(ds, dr["ID"].ToString(), TN);            }        }
  41.        // 绑定子目录        /// </summary>   
  42.         protected void CreateNodes(DataSet ds, string PrentID, ExtAspNet.TreeNode TN)   
  43.         {            DataRow[] drParent = ds.Tables[0].Select("PrentID=" + PrentID+ "");
  44.             foreach (DataRow dr in drParent)         
  45.             {                ExtAspNet.TreeNode tn = new ExtAspNet.TreeNode();         
  46.                 tn.Text = dr["NAME"].ToString();        
  47.                 tn.NodeID = dr["ID"].ToString();         
  48.                 TN.OnClientClick = mainTabStrip1.GetAddTabReference(dr["ID"].ToString(), dr["PATH"].ToString(), dr["NAME"].ToString(), true);      
  49.                 TN.EnablePostBack = false;         
  50.                 TN.Nodes.Add(tn);                           
  51.                 //循环子节点看看是否还有下属节点        
  52.                 CreateNodes(ds, dr["ID"].ToString(), tn);            }        }


  53.         }
复制代码





欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4