jQuery MiniUI

 找回密码
 立即注册
查看: 5149|回复: 13
打印 上一主题 下一主题

请教大侠:Tree加超链在新的Tab里打开问题。我的代码 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2013-11-20 15:41:25 |只看该作者 |倒序浏览
前台div段:



前台js段:



不知道该如何给tab.url赋值啊。请大侠帮帮忙吧。尿了。。。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 1

沙发
发表于 2013-11-20 15:42:38 |只看该作者
忘记说了,我的地址是数据库的一个字段的动态地址,要读数据库赋值进去的。。。

Rank: 8Rank: 8

板凳
发表于 2013-11-20 16:15:20 |只看该作者
therealsun1 发表于 2013-11-20 15:42
忘记说了,我的地址是数据库的一个字段的动态地址,要读数据库赋值进去的。。。 ...

你现在的url是什么问题? 设置不了?还是获取不了

Rank: 1

地板
发表于 2013-11-20 16:22:26 |只看该作者
factory 发表于 2013-11-20 16:15
你现在的url是什么问题? 设置不了?还是获取不了

感谢老大出面!

我现在的问题是设置不了点击后跳转的路径。

路径都是在我数据库存着。

我在想既然tree-mini有这些属性 idField="MenuID" textField="MenuName" parentField="FatherID"
那么有没有跳转的路径的属性呢,可是我查了下api好像没有。怎么办啊老大?

Rank: 8Rank: 8

5#
发表于 2013-11-20 16:30:20 |只看该作者
therealsun1 发表于 2013-11-20 16:22
感谢老大出面!

我现在的问题是设置不了点击后跳转的路径。

打开页面是靠tab打开的

点击tree,只不过把tree的一些信息传递给tab,tab根据他去打开对应页面

所以你检查下,是否tab.url 没有获取成功还是什么

Rank: 1

6#
发表于 2013-11-20 16:33:27 |只看该作者
factory 发表于 2013-11-20 16:30
打开页面是靠tab打开的

点击tree,只不过把tree的一些信息传递给tab,tab根据他去打开对应页面

恩!就是这样的情况老大。

我就是不知道如何获取tree传过来的数据里的信息。

因为那个数据库里存着网址信息。

求老大赐教。

Rank: 8Rank: 8

7#
发表于 2013-11-20 17:07:54 |只看该作者
therealsun1 发表于 2013-11-20 16:33
恩!就是这样的情况老大。

我就是不知道如何获取tree传过来的数据里的信息。

你这样肯定不对.因为页面加载的时候,解析到你这段服务端获取url的代码的时候node.id还不存在

你这样做
1.前台用ajax去服务端根据node.id去后台获取url

2.你在后台,根据tree的id,去查询数据库里面的url,然后把url给到tree的节点上
比如:{id:1,nodeName:"aaa",url:"/........"}
整合完成之后,把tree数据返回给前台的tree.这样就能直接根据node获取到里面的url,不需要再去多次从后台获取了

Rank: 1

8#
发表于 2013-11-21 17:30:49 |只看该作者
factory 发表于 2013-11-20 17:07
你这样肯定不对.因为页面加载的时候,解析到你这段服务端获取url的代码的时候node.id还不存在

你这样做

做了一天了,还是没做出来,老大能否给个代码看看啊,比如数据库menuid,menuname,fatherid,fathername,url

我怎么做才可以用tab获取url字段啊?

//树菜单方法
    function onNodeSelect(e)
    {
        var node = e.node;
        var isLeaf = e.isLeaf;
        if (isLeaf)
        {
            showTab(node);
        }
    }
    //选项卡方法
    function showTab(node)
    {
        var tabs = mini.get("XTabs");
        var id = "tab$" + node.id;
        var tab = tabs.getTab(id);
        if (!tab)
        {
            tab = {};
            tab._nodeid = node.id;
            tab.name = id;
            tab.title = node.text;
            tab.showCloseButton = true;
            tab.url = "c.html";
            tabs.addTab(tab);
        }
        tabs.activeTab(tab);
    }

Rank: 1

9#
发表于 2013-11-21 17:31:52 |只看该作者
factory 发表于 2013-11-20 17:07
你这样肯定不对.因为页面加载的时候,解析到你这段服务端获取url的代码的时候node.id还不存在

你这样做

目前我用的后台绑定方法:

public void loadmenu()
        {
            ArrayList folders = new XMenu().GetMenu();
            String json = JSON.Encode(folders);
            Response.Write(json);
        }

Rank: 8Rank: 8

10#
发表于 2013-11-21 18:11:09 |只看该作者
therealsun1 发表于 2013-11-21 17:31
目前我用的后台绑定方法:

public void loadmenu()

1.ajax获取

先获取到你点击的那个节点的id:
$.ajax({
                url: "../data/FormService.aspx?method=getUrl",
                type: "post",
                data: { submitData: id},
                success: function (text) {
                    //....获取到这个节点url了,再把url赋值给tab
                }
            });

2. 你就后台先查询出一棵树,然后再遍历,把树的节点id相关的url,给到这个节点属性.再把树返回

Archiver|普加软件

GMT+8, 2024-6-16 05:01 , Processed in 1.062846 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部