Ztree如何实现点击左边 + 号图标号后从数据库动态获取子节点数据,显示出来

Ztree如何实现点击左边 + 号图标号后从数据库动态获取子节点数据,显示出来,第1张

最简单的办法,其实就是拼写字符串,你怎么拼出来 web页面的html内容的?? 那么只需要按照 json格式拼出全部字符串即可。

可以参考 异步加载 Demo 中得到的数据(请利用 chrome 的调试工具进行跟踪调试)

如果对象比较复杂,那么可以在谷歌上搜索一下:“java json 输出” 会有很多教程和 lib 推荐

--测试环境MSSQL2008

--建表

Create Table M

(

    编号 int,

    名称 Varchar(20),

    编号父级 int

)

Create Table N

(

    编号 int,

    内容 Varchar(20),

    M_编号 int,

    金额 int

)

--插入数据

Insert into M values(1,'集团',0)

Insert into M values(2,'第一公司',1)

Insert into M values(3,'第二公司',1)

Insert into M values(4,'第三公司',1)

Insert into M values(5,'人力资源',2)

Insert into M values(6,'行政部',2)

Insert into M values(7,'政治部',2)

Insert into M values(8,'人力资源',3)

Insert into M values(9,'行政部',3)

Insert into M values(10,'政治部',3)

Insert into M values(11,'人力资源',4)

Insert into M values(12,'行政部',4)

Insert into M values(13,'政治部',4)

insert into N Values(1,'内容1',5,10)

insert into N Values(2,'内容2',5,10)

insert into N Values(3,'内容3',5,10)

insert into N Values(4,'内容4',6,10)

insert into N Values(5,'内容5',6,10)

insert into N Values(6,'内容6',6,10)

insert into N Values(7,'内容7',6,10)

insert into N Values(8,'内容8',7,10)

insert into N Values(9,'内容9',7,10)

insert into N Values(10,'内容10',8,10)

insert into N Values(11,'内容11',9,10)

insert into N Values(12,'内容12',11,10)

--查询 

With CT

AS

(

    select M,N金额,N编号 As N_编号  from M  left join N on M编号=NM_编号 

    union all

    select M,CT金额,CTN_编号 from CT inner join M 

    on CT编号父级=M编号

)

Select 编号,名称,COUNT(N_编号) As 数量,sum(金额) As 金额 From CT

Group by  

编号,名称

order by 编号 

--只显示编号编号父级的合计

With CT

AS

(

    select M,N金额,N编号 As N_编号  from M  left join N on M编号=NM_编号 

    union all

    select M,CT金额,CTN_编号 from CT inner join M 

    on CT编号父级=M编号

)

Select 编号,名称,COUNT(N_编号) As 数量,sum(金额) As 金额 From CT

where 编号   in (select 编号父级 from  M )  

Group by  

编号,名称

order by 编号

数据库取出来首先是一个LIST。

然后用jsonlib这个包的API转一下就OK了

JSONArrayfromObject(list)toString(); 就可以了

为什么又说是“终于”呢? 因为花了3个工作日,带加班加一块18个小时的现场安装时间,才最终搞定,辛苦辛苦!

SQL群集手动切换是正常的。

*** 作系统:Windows Server 2008 R2 Enterprise Edition (x64)

群集软件:OS自带的“故障转移群集”

数据库:SQL Server 2008 R2 Enterprise Edition (x64)

共享存储:IBM DS4300 ,8x300GB SAS,划完共4块磁盘,共16TB,RAID 5,阵列卡交换速率4G,双通单控

主要遇到过的问题:

1、存储划错,重划时由于采用另一台电脑划分,群集重启后无法认到,于时MSCS破坏群集不正常,2台节点只好重装

2、不能采用DC作为群集节点,故安装双节点群集至少需要3台主机,另有1台充当DC, *** 作步骤为:

在第3台主机上安装现有域的第3台DC,确认与其他2台DC都可以进行复制 *** 作

将根域DC上的5个FSMO角色传送到第3台DC,确认第3台DC同时为GC

运行dcpromo命令在原先2台DC上反安装DC,在反安装时不要选中“这是最后一台域控制器”

检测域DNS和AD的正确性

检测MSCS的正确性

3、安装SQL2008RTM群集时出错,提示RequireKerberos=1超出范围错误(这是SQL2008RTM在群集安装时会出现的1个BUG,必须采用slipstream方式附带SP1一块安装),不得已反安装,但由于手动将MSCS中失败的SQL资源删除,使得SQL反安装失败,手动删除注册表均未果,只好重装节点1,重装时的正确步骤为:

破坏群集(由于存储正常,很快完成)

将节点1退出域(此时在DC中显示该节点帐号为禁用状态,不要删除它)

重新安装节点1 *** 作系统,配置存储阵列盘、配置IP地址与域DNS,加入域

删除域中有关原群集的信息,包括群集名称在AD数据库中的内容(在Computer容器下),检查DNS中无群集节点解析

//窗口载入

private void RelayMesFrm_Load(object sender, EventArgs e)

{

TreeViewBind(); //绑定数据到Treeview的方法

t_tvw_relayExpandAll(); //展开所有节点

}

//这个方法是根据我用到的情况写的。算上根节点一共才能三级节点,一级节点只有五个。所以新建了一个类型去保存。没有用到数据库,二级节点是从数据库中调出来的,根节点是手动创建的。

private void TreeViewBind() //绑定数据到Treeview的方法

{

TreeNode pNode = new TreeNode(); //新建根节点

pNodeText = "指令类型";

pNodeName = "0";

t_tvw_relayNodesAdd(pNode);

foreach (var m in tndn) //绑定一级节点

{

TreeNode node = new TreeNode();

nodeText = mValueToString();

nodeName = mKeyToString();

pNodeNodesAdd(node);

foreach (var n in dalrelaygetInstance()GetList()) //绑定二级节点

{

if (ncodeToString() == nodeName && nparentid == 0) //条件,二级节点和一级节点的关系

{

TreeNode nodesql = new TreeNode();//新建二级节点

nodesqlText = nnameToString();

nodesqlName = nidToString();

nodeNodesAdd(nodesql);

}

}

}

}

然后比如加一个删除的代码:

//TreeView右键删除事件

private void t_cms_delete_Click(object sender, EventArgs e)

{

List<relay> pd = new List<relay>(); //这是我新建的一个类。就是调用数据库中的数据用的。

pd = dal_modelGetlist()FindAll(m => mparentidToString() == modelteName);//查出当前选中节点的ID和数据库中该ID对应的数据

if (pdCount != 0)

{

MessageBoxShow("该节点下有数据,不可删除!", "信息提示", MessageBoxButtonsOK, MessageBoxIconInformation);

}

else

{

dal_modeldelete_relay(modelteNameToString());//删除方法

TreeViewBind(); //注意这里,这就是解决你问题的地方了,重新调用方法就可以

t_tvw_relayExpandAll(); //展开所有节点

}

}

添加节点也一样,就是这个意思。希望你是用数据库绑定Treeview的。要不我的方法就帮不到你了。。别人那转发过来的。。。

只要你定义了NodeToolTipText,并且设置了TreeView控件的ShowNodeToolTips属性为true,就会显示出信息,不需要自行在事件中处理,除非是有比较特殊的需求。希望对你有帮助,还有疑问请追问或是Hi

以上就是关于Ztree如何实现点击左边 + 号图标号后从数据库动态获取子节点数据,显示出来全部的内容,包括:Ztree如何实现点击左边 + 号图标号后从数据库动态获取子节点数据,显示出来、sql父级节点显示所有子节点的数量和金额的合计、怎样从数据库查询出来,循环生成节点,用标准json数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9542188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存