文档章节

PB树形控件勾选联动

孤独剑888
 孤独剑888
发布于 2017/06/01 17:12
字数 429
阅读 8
收藏 0

//因为CSDN登陆需要绑定手机,所以将原来的blog内容迁徙至这里

做PB树形控件的时候需要勾选联动,从网上找了个方案,但是对向上勾选支持的不是很好,自己做了点优化,希望可以帮到别人

首先treeview需要勾选 checkboxes属性

在tv_1.clicked事件中增加代码

TreeViewItem ltvitem
getitem(handle, ltvitem)

post event ue_statechanged(handle, ltvitem.statepictureindex)

在树形控件中新增函数 ue_statechanged(long handle,integer prevstate)   代码如下

treeviewitem ltvi_item
getitem(handle, ltvi_item)

if ltvi_item.statepictureindex = prevstate then
    return
else
    this.Event ue_synchronizechildren(handle,ltvi_item.statepictureindex)    //这个函数包含了向下的选中和取消
    this.Event ue_synchronizeparent(handle,ltvi_item.statepictureindex)       //优化了这个函数
end if

在树形控件新增函数 ue_synchronizechildren(long handle,integer state) 代码如下

long ll_childitem
treeviewitem ltvi_item
getitem(handle, ltvi_item)
ltvi_item.statepictureindex = state
setitem(handle, ltvi_item)
ll_childitem = this.finditem(ChildTreeItem!, handle)
do while(ll_childitem <> -1)
    this.Event ue_synchronizechildren(ll_childitem, state) //递归遍历后代结点
    ll_childitem = this.finditem(NextTreeItem!, ll_childitem)
loop

在树形控件新增函数 ue_synchronizeparent(long handle,integer state) 代码如下

long ll_parentitem,ll_nextitem
treeviewitem ltvi_item,ltvi_nextitem
this.getitem(handle, ltvi_item)
ltvi_item.statepictureindex = state
this.setitem(handle, ltvi_item)
if state = 1 then
    ll_parentitem = this.finditem(ParentTreeItem!, handle)
    if ll_parentitem > 0 then
        this.getitem(ll_parentitem, ltvi_item)
        ltvi_item.statepictureindex = state
        this.Event ue_synchronizeparent(ll_parentitem, state)
    else
        return
    end if
else
    ll_nextitem = this.finditem(NextTreeItem!, handle) //同层下一项
    do while(ll_nextitem <> -1)
        getitem(ll_nextitem, ltvi_nextitem)
        if ltvi_nextitem.statepictureindex = 1 then return //有没选中,就返回!
        ll_nextitem = this.finditem(NextTreeItem!, ll_nextitem)
    loop
    ll_nextitem = this.finditem(previoustreeItem!, handle) //同层上一项
    do while(ll_nextitem <> -1)
        getitem(ll_nextitem, ltvi_nextitem)
        if ltvi_nextitem.statepictureindex = 1 then return //有没选中,就返回!
        ll_nextitem = this.finditem(previoustreeItem!,ll_nextitem)
    loop
    ll_parentitem = this.finditem(ParentTreeItem!, handle)
    if ll_parentitem > 0 then
        this.getitem(ll_parentitem, ltvi_item)
        ltvi_item.statepictureindex = state
        this.Event ue_synchronizeparent(ll_parentitem, state)
    else
        return
    end if
end if
this.Event ue_synchronizeparent(ll_parentitem,state)

 

这样这个树形控件可以更完美的实现勾选功能,代码基于前辈代码做的优化,具体出处现在找不到了,感谢

© 著作权归作者所有

孤独剑888
粉丝 0
博文 3
码字总数 520
作品 0
浦东
程序员
私信 提问
C# - 解决TreeView控件复选框联动时鼠标点击过快导致的显示不正确的问题

今天我在试着做一个C#树形视图(TreeView)控件,要求在每个节点前面添加一个可用于打勾的复选框,并要求复选框有上下级联动的效果。现在在网上能查到挺多满足这类功能的代码,原本我也以为这...

北风其凉
2015/12/26
898
0
Vue 折腾记 - (19) 基于Antd Design Vue 封装一个符合业务的树形组件

前言 原型上有个权限分配的功能; 仔细翻了下对应的文档(),发现有那么一个树形控件,但是没有上面部分全局控制的功能。 那么只能自己动手改造出一个符合业务的了,有兴趣的看官可以瞅瞅。 ...

CRPER
04/23
0
0
用autoit怎么选中一个树形结构的某一项??

大家好! 有个软件的某个窗口有树形控件,展开后每一个item都有一个对应的小方框供勾选,利用autoit怎么勾选这个小方框?请帮忙解答一下,多谢!

云霞
2011/09/29
1K
1
jquery.ztree控件 树形勾选控件

勾选上级,下级会默认勾选 看文档知道要修改的地方: // 树形控件参数初始化 var ztree_setting = { check: { enable: true, idKey: "id", pIdKey: "pId", rootPId: 0, chkStyle: "checkbox......

东东笔记
03/12
91
0
高仿头条-广告系统中的级联面板组件

需求分析 根据效果图,首先需要把省市区的数据按列展示在左侧区域,点击父级节点联动展示子级数据,每次点击展开节点的下一级所在的列。 勾选父级节点,子级节点全选,反之全选子级节点,父节...

juenanfeng
05/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
8
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部