Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计

实现点击不同树节点打开不同tab页展示不同datagrid表数据设计

by:授客 QQ:1033553122

测试环境

jquery-easyui-1.5.3

需求描述

如上图,

1、点击左侧树,叶子节点,打开不同的tab页,加载与节点对应的表数据

2、在上述打开页面中,进行新增,编辑,复制等操作,确保新增、复制等操作生成的数据只在该页面可见。

涉及思路与关键代码

1、单击左侧树时,叶子节点时,新增、激活一个tab页,打开、激活之前,设置tab页id属性值为树节点的ID,设置title属性为节点名称

// 请求用例树

$(‘#tree‘).tree({

url:‘nodeTree?treeType=APICaseTree&projectID=‘ + projectID,

onClick: function(node){

var rootNodeId =  $(this).tree(‘getRoot‘).id; //方法 getRoot    获取根节点,返回节点对象

if (node.id != rootNodeId) {  // 非根节点

// 取消上次延时未执行的方法

clearTimeout(id_of_settimeout);

//执行延时

id_of_settimeout = setTimeout(function(){

// 方法:isLeaf   target  判断指定的节点是否为叶节点,target 参数表示节点的 DOM 对象。

// 如果为叶节点,即无子节点,则为该节点添加对应的tab页,tab标题命名为节点名称,tabID则设置为 项目ID-节点ID

if ($(this).tree(‘isLeaf‘, node.target)) {

var tabID = node.id;

addTab(node.text, tabID);

}

}, 300);

}

}

});

// 点击用例树,叶节点,打开对应tab页的函数实现

function addTab(title, tabID){

var url = ‘/action/APICaseTreeNodePage‘;

if($(‘#tabs‘).tabs(‘exists‘, title)){  // 如果tab已存在,则选中、激活tab

$(‘#tabs‘).tabs(‘select‘, title);

} else{ //否则,添加tab

var iframe=‘<iframe scrolling="auto" frameborder="0"  src="‘+url+‘" style="width:100%;height:100%;"></iframe>‘;

$(‘#tabs‘).tabs(‘add‘,{

id: tabID,

title: title,

content: iframe,

closable: true

});

}

}

2、定义datagrid时,不设置url,或者设置url为‘‘,然后表格加载数据之前,修改请求数据的url(主要是修改请求参数,请求参数设计为节点ID,通过父子页面关系,获取tab ID来获取,后台服务器根据传递的url参数进行数据的筛选并返回)

<table class="easyui-datagrid" rownumbers="true" pagination="true" id="API_test_case_step"

data-options="border:false,

method: ‘get‘,

onEndEdit:onEndEdit,

onBeforeLoad:onBeforeLoad,

……

">

<thead>

……

</thead>

</table>

// 加载数据之前修改url值,以保持页面数据和用例的对应关系

function onBeforeLoad(param){

// 获取当前页面所在父页面(tab页)的ID,即用例树节点ID

var currentTab = window.parent.$(‘#tabs‘).tabs(‘getSelected‘);

var tabID = currentTab.panel(‘options‘).id;

var nodeID = tabID;

$(‘#API_test_case_step‘).datagrid(‘options‘).url = ‘/action/loadAPICaseSteps?nodeID=‘ + nodeID;

}

到这一步已经实现了树节点和请求页面数据的对应关系。

3、新增,复制数据时也可以按上述第2点的设计思路来进行,先通过父子页面关系获取相关id,然后和其它数据一起发送给服务器

原文地址:https://www.cnblogs.com/shouke/p/10363652.html

时间: 2024-10-19 01:17:17

Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计的相关文章

easyUI tree点击文字展开节点

easyUI默认展开树的时候,点击节点前边的黑色小三角 ,这样操作存在不人性化的地方,在实际使用中由于老旧电脑的存在和大龄使用者的眼花经常点不准:因此要实现点击节点名称展开的方式,其实就是在展开事件上加一个展开该节点的方法. 在onSelect事件中添加 $(this).tree('expand',node.target); 当选中该节点的时候,展开该节点下的节点,该方法只会展开下一级节点,并不会展开子节点下的节点. 如果要展开所有节点: $(this).tree('expandAll',nod

HTML点击超链接让其打开新标签页

在<a href="***">里,加入一句:target="_blank" 例:<a href="www.cctv.com" target="_blank">在新窗口打开央视网站</a>

在EasyUI实现点击有子节点的文字时展开但不选中,点击最终子节点才选中的功能

最近做的项目中,总是会遇到需要实现点击树目录的有子节点时展开目录,点击最终子节点才实现选中的功能的需求.下边我就直接黏贴一下代码出来吧,非常容易看懂,关键的就是在选中事件中加一个判断. $('#RepairTID').combotree({        url: '/RepairSub/GetRepTypeZ/?userRole=5',        required: true,        panelHeight: 'auto',        onLoadSuccess: functi

java递归实现easyui树节点

1. [代码]easyui的Tree节点JSON格式 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [{        "id":1,        "text":"Folder1",        "iconCls":"icon-save",        "chi

ExtJs 4.2 treePanel 点击树节点 传送参数到后台(多个参数)

//***********************************************左边树开始*********************************************** //分组树Store var treeStore = Ext.create('Ext.data.TreeStore', { proxy: { type: 'ajax', url: "/Handler/StorePositionLayoutHandler.ashx?func=getbystores

pyqt5 树节点点击实现多窗口切换

# coding=utf-8 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): hbox = QHBoxLayout(self) left = QFrame(self) #

树节点

private void zimulu(TreeNode node)//在点开节点的一瞬间,解析当前目录的第三级目录 { try//对错误或者权限不作处理 { //根据获得的完整目录得到该目录下的子目录 foreach (var dirinfor in new DirectoryInfo(node.Tag.ToString()).GetDirectories()) { //依据目录的完整目录获取其子目录,否则找不到文件 //以子目录的文件名为名称创建树节点 var n = new TreeNod

Easyui Tree方法扩展 - getLevel(获取节点级别)

Easyui Tree一直就没有提供这个方法,以前没有用到,所以一直没怎么在意,这次自己用到了,顺便扩展了一个方法,分享给大家. $.extend($.fn.tree.methods, { getLevel:function(jq,target){ var l = $(target).parentsUntil("ul.tree","ul"); return l.length+1; } }); 用法: var node = $().tree("getSele

ext 树节点操作

ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parentNode 4.判断是否有父节点 node.parentNode==null 5.判断是否有子节点 node.hasChildNodes() 6.获取下一级所有子节点 node.eachChild(function(child) { }) 7.获取选择的节点 tree.getSelectionMode