FineUI 官方论坛

标题: 点击树节点,打开子页面 [打印本页]

作者: xiaowengang    时间: 2017-5-9 11:59
标题: 点击树节点,打开子页面
在Home/Indexd的主页面里面,点击左侧的一个节点时,怎么在右侧打开一个子页面,比如ManageCotroller,对应的View下的User.cshtml;我要如何打开呢??

作者: xiaowengang    时间: 2017-5-10 08:07
请问http://fineui.com/demo_mvc/这种,点击左侧树节点,在右侧打开一个页面的效果,怎么做
作者: xiaowengang    时间: 2017-5-10 08:18
本帖最后由 xiaowengang 于 2017-5-10 08:32 编辑

呼救呼救,我用XML按例子中的做就可以,但是我用datatabel自己生成个XML就不行了,点击节点每次是在一个新页面打开的窗口,而不是在之前的页面的右边打开的,这个怎么解决啊
作者: KK.Leung    时间: 2017-5-10 09:05
要关联树控件跟选项卡控件
详情可以看Home/Index最下面
  1.         // 页面控件初始化完毕后,会调用用户自定义的onReady函数
  2.         F.ready(function () {
  3.             console.log(F.ui.AP1.getTitle());
  4.             // 初始化主框架中的树和选项卡互动,以及地址栏的更新
  5.             // treeMenu: 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例
  6.             // mainTabStrip: 选项卡实例
  7.             // updateHash: 切换Tab时,是否更新地址栏Hash值(默认值:true)
  8.             // refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame(默认值:false)
  9.             // refreshWhenTabChange: 切换选项卡时,是否刷新内部IFrame(默认值:false)
  10.             // maxTabCount: 最大允许打开的选项卡数量
  11.             // maxTabMessage: 超过最大允许打开选项卡数量时的提示信息
  12.             F.initTreeTabStrip(F.ui.treeMenu, F.ui.mainTabStrip, {
  13.                 maxTabCount: 12,
  14.                 maxTabMessage: '请先关闭一些选项卡(最多允许打开 12 个)!'
  15.             });

  16.         });
复制代码


作者: xiaowengang    时间: 2017-5-11 08:09
上面的代码我在FineUIMVC的空项目的的里面有看到,不过,我直接用XML文件时,将上面的代码屏蔽了,点击左侧的树也可以在右侧打开子页面;但是,当我不直接用XML文件,而是用一个数据表,生成左侧的树,这时点击时不能在右侧打开子页面了
作者: xiaowengang    时间: 2017-5-12 14:11
为什么我点击节点是打开一个新窗口,不是在之前的窗口里面啊
作者: xiaowengang    时间: 2017-5-13 15:31
这个问题,我自己找到原因了,和大家分享下,我是在每个面板里面放一个树,作为主页面,点击,在右侧打开一个子页面;
下面是cshtml的文件

@functions {

    /// <summary>
    /// 改变节点的 Target 属性
    /// </summary>
    /// <param name="nodes"></param>
    private void ResolveTreeNode(TreeNodeCollection nodes)
    {
        foreach (TreeNode node in nodes)
        {
            if (node.Nodes.Count == 0)
            {
                if (!String.IsNullOrEmpty(node.NavigateUrl))
                {
                    node.Target = "accordionmainframe";
                }
            }
            else
            {
                ResolveTreeNode(node.Nodes);
            }
        }
    }

}

@section body {

    <div id="header" class="ui-widget-header f-mainheader">
        <table>
            <tr>
                <td>
                    @(F.Button()
                        .OnClientClick("window.open('http://fineui.com/mvc/','_blank');")
                        .EnableDefaultCorner(false)
                        .EnableDefaultState(false)
                        .IconFont(IconFont.Home)
                        .IconAlign(IconAlign.Top)
                        .ToolTip("官网首页")
                        .ID("btnHomePage")
                        .CssClass("icononlyaction")
                    )
                    <a class="logo" href="@Url.Content("~/")" title="音频服务平台">
                        音频服务平台
                    </a>
                </td>               
            </tr>
        </table>
    </div>

    <div id="maincontent">
        <h2>FineUIMvc</h2>
        基于 jQuery 的专业 ASP.NET MVC 控件库

        <br />
        <h2>支持的浏览器</h2>
        Chrome、Firefox、Safari、Edge、IE8.0+

        <br />
        <h2>授权协议</h2>
        商业授权

        <br />
        <h2>相关链接</h2>
        <ul class="list">
            <li>
                首页:<a target="_blank" href="http://fineui.com/mvc/">http://fineui.com/mvc/</a>
            </li>
            <li>
                示例:<a target="_blank" href="http://fineui.com/demo_mvc/">http://fineui.com/demo_mvc/</a>
            </li>
            <li>
                更新:<a target="_blank" href="http://fineui.com/version_mvc/">http://fineui.com/version_mvc/</a>
            </li>
            <li>
                论坛:<a target="_blank" href="http://fineui.com/bbs/">http://fineui.com/bbs/</a>
            </li>
        </ul>

    </div>

    @(F.RegionPanel()
        .ID("RegionPanel1")
        .ShowBorder(false)
        .IsViewPort(true)
        .Regions(
            F.Region()
                .ID("Region1")
                .ShowBorder(false)
                .ShowHeader(false)
                .RegionPosition(Position.Top)
                .Layout(LayoutType.Fit)
                .ContentEl("#header"),
            F.Region()
                .ID("Region2")
                .RegionSplit(true)
                .RegionSplitHeaderClass(false)
                .RegionPosition(Position.Left)
                .Width(200)
                .ShowHeader(false)
                .Title("目录")
                .EnableCollapse(true)
                .Layout(LayoutType.Fit)
                .Items(
                    F.Accordion()
                        .ID("Accordion1")
                        .ShowBorder(false)
                        .ShowHeader(false)
                        .ShowCollapseTool(true)
                        .Panes(
                            F.AccordionPane()
                            .Title("OA3管理")
                            .IconUrl(Url.Content("~/res/images/16/1.png"))
                            .BodyPadding("2px 5px")
                            .Layout(LayoutType.Fit)
                            .Items(
                            F.Tree()
                            .ShowBorder(false)
                            .ShowHeader(false)
                                    .ID("treeMenu_OA3")
                            .DataSource(ViewBag.Tree_OA3DataSource)
                            ),
                            F.AccordionPane()
                            .Title("研发管理")
                            .IconUrl(Url.Content("~/res/images/16/1.png"))
                            .BodyPadding("2px 5px")
                            .Layout(LayoutType.Fit)
                            .Items(
                            F.Tree()
                            .ShowBorder(false)
                            .ShowHeader(false)
                                    .ID("treeMenu_YF")
                            .DataSource(ViewBag.Tree_YFDataSource)
                            ),
                            F.AccordionPane()
                            .Title("销售管理")
                            .IconUrl(Url.Content("~/res/images/16/1.png"))
                            .BodyPadding("2px 5px")
                            .Layout(LayoutType.Fit)
                            .Items(
                            F.Tree()
                            .ShowBorder(false)
                            .ShowHeader(false)
                                    .ID("treeMenu_Sale")
                            .DataSource(ViewBag.Tree_SaleDataSource)
                            ),
                            F.AccordionPane()
                            .Title("系统管理")
                            .IconUrl(Url.Content("~/res/images/16/1.png"))
                            .BodyPadding("2px 5px")
                            .Layout(LayoutType.Fit)
                            .Items(
                            F.Tree()
                            .ShowBorder(false)
                            .ShowHeader(false)
                                    .ID("treeMenu_Sys")
                            .DataSource(ViewBag.Tree_SysDataSource)
                            )
                        )
                ),
            F.Region()
                .ID("Region3")
                .ShowHeader(false)
                .EnableIFrame(true)
                .IFrameUrl(Url.Content("~/Accordion/Tree/DefaultPage"))
                .IFrameName("accordionmainframe")
                .RegionPosition(Position.Center)
        )
        
    )

@{
    Tree tree_OA3 = F.GetControl<Tree>("treeMenu_OA3");

    ResolveTreeNode(tree_OA3.Nodes);
}

@{
    Tree tree_YF = F.GetControl<Tree>("treeMenu_YF");

    ResolveTreeNode(tree_YF.Nodes);
}

@{
    Tree tree_Sale = F.GetControl<Tree>("treeMenu_Sale");

    ResolveTreeNode(tree_Sale.Nodes);
}

@{
    Tree tree_Sys = F.GetControl<Tree>("treeMenu_Sys");

    ResolveTreeNode(tree_Sys.Nodes);
}
   
}

作者: xiaowengang    时间: 2017-5-13 15:34
下面是根据表结构动态的构建XML,绑定到树
        private void LoadData()
        {
            int i = 0;

            string systemname = "INFOWEB";  //AppConfiguration.SYSTEM_FLAG
            string sql0 = "select distinct action_id from vw_power where action_systemno='" + systemname + "' and user_no='" + sCookieName + "' and action_pid=0 and action_menu=1";
            string sql = "select distinct action_id,action_name,action_order from vw_power where user_no='" + sCookieName + "' and action_pid in (" + sql0 + ") order by action_order";
            DataTable dt_MN = DBConnSql.GetDataTable(AppConfiguration.PowerConn, sql);
            string cmdText = "select distinct user_no,action_id,action_name,action_no,action_folder,action_url,action_order from vw_power where action_menu=1 and user_no='" + sCookieName + "' order by action_order";
            DataTable dt_TR = DBConnSql.GetDataTable(AppConfiguration.PowerConn, cmdText);

            //string strsel = "SELECT action_id as TREENODE_ID,action_name as TEXT,action_url as NAVIGATEURL,'' as ISNEW,action_pid as TREENODE_ID_0,action_order FROM Power_Action where action_systemno='INFOWEB' order by action_order,action_id";
            string strsel = "SELECT action_id as TREENODE_ID,action_name as TEXT,case right(action_url,5) when '.aspx' then '/'+substring(action_url,0,len(action_url)-4) else action_url end as NAVIGATEURL,'' as ISNEW,action_pid as TREENODE_ID_0,action_order FROM Power_Action where action_systemno='INFOWEB' order by action_order,action_id";
            dtmenu = DBConnSql.GetDataTable(AppConfiguration.PowerConn, strsel);

            //为OA3管理绑定树数据源
            XmlDocument xdoc_OA3 = new XmlDocument();
            xmlContent.Clear();
            xmlContent.AppendLine("<?xml version='1.0' encoding='utf-8' ?> ");
            xmlContent.AppendLine("<Tree> ");
            DataRow[] dr_OA3 = dtmenu.Select(" TREENODE_ID_0='55' ", " action_order ");
            MakeXML(dr_OA3);   //为OA3管理生成XML文件
            xmlContent.AppendLine("</Tree> ");
            xdoc_OA3.LoadXml(xmlContent.ToString());
            ViewBag.Tree_OA3DataSource = xdoc_OA3;

            //为研发管理绑定树数据源
            XmlDocument xdoc_YF = new XmlDocument();
            xmlContent.Clear();
            xmlContent.AppendLine("<?xml version='1.0' encoding='utf-8' ?> ");
            xmlContent.AppendLine("<Tree> ");
            DataRow[] dr_YF = dtmenu.Select(" TREENODE_ID_0='98' ", " action_order ");
            MakeXML(dr_YF);   //为研发管理生成XML文件
            //xmlContent += "</Tree> ";
            xmlContent.AppendLine("</Tree> ");
            xdoc_YF.LoadXml(xmlContent.ToString());
            ViewBag.Tree_YFDataSource = xdoc_YF;

            ////为销售管理绑定树数据源
            //XmlDocument xdoc_Sale = new XmlDocument();
            //xmlContent.Clear();
            //xmlContent.AppendLine("<?xml version='1.0' encoding='utf-8' ?> ");
            //xmlContent.AppendLine("<Tree> ");
            //DataRow[] dr_Sale = dtmenu.Select(" TREENODE_ID_0='67' ", " action_order ");
            //MakeXML(dr_Sale);   //为销售管理生成XML文件
            //xmlContent.AppendLine("</Tree> ");
            //xdoc_Sale.LoadXml(xmlContent.ToString());
            //ViewBag.Tree_SaleDataSource = xdoc_Sale;

            //为系统管理绑定树数据源
            XmlDocument xdoc_Sys = new XmlDocument();
            xmlContent.Clear();
            xmlContent.AppendLine("<?xml version='1.0' encoding='utf-8' ?> ");
            xmlContent.AppendLine("<Tree> ");
            DataRow[] dr_Sys = dtmenu.Select(" TREENODE_ID_0='10' ", " action_order ");
            MakeXML(dr_Sys);   //为系统管理生成XML文件
            xmlContent.AppendLine("</Tree> ");
            xdoc_Sys.LoadXml(xmlContent.ToString());
            ViewBag.Tree_SysDataSource = xdoc_Sys;


            //UIHelper.
        }

        public void MakeXML(DataRow[] DR_Sle)
        {
            foreach (DataRow DR in DR_Sle)
            {
                if (DR.ItemArray.Length > 0)
                {
                    xmlContent.AppendLine("<TreeNode ");
                    xmlContent.AppendLine(" Text='" + DR.ItemArray[1].ToString().Trim() + "' ");
                    if (DR.ItemArray[2].ToString().Trim() != "")
                    { xmlContent.AppendLine(" NavigateUrl='" + DR.ItemArray[2].ToString().Trim() + "' "); }
                    xmlContent.AppendLine("> ");
                    string p_id = DR.ItemArray[0].ToString().Trim();
                    DataRow[] dr_chd = dtmenu.Select(" TREENODE_ID_0='" + p_id + "' ", " action_order ");

                    MakeXML(dr_chd);

                    xmlContent.AppendLine("</TreeNode> ");
                }
            }
        }
作者: xiaowengang    时间: 2017-5-15 18:20
这个可以点击左侧树,在右侧打开子页面;但是在右侧不能同时打开多个子页面;谁能指点下




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