DWZ (JUI) 教程 tree 控件的选中事件

原文:DWZ (JUI) 教程 tree 控件的选中事件

先简单说一下流程

第一步 当然是先定义好回调事件了

function checkCallback(json){
...........
...........
}

关键是回调函数返回的结构 {checked:布尔值, items:数组}

如果是选中事件 checked 为 true 否则为false

items 是个对象数组 [ {name:, value:, text: },{} ]   是返回是选中的节点,如果返回的checked 为false 就是反选事件 ,那么它的长度就会是0

name 就是节点名称  value 就是对应的值  text 就是节点对应的文本  对应 节点的 tname tvalue ,<a>text</a> 文本信息

tree控件自动是级联的,选中父节点,子节点也会选中,所以返回的的选中节点是个数组,当然如果是叶子节点,那么它的长度就是1

第二步 就是注册到dom元素上

<ul class="tree treeFolder treeCheck expand" oncheck="checkCallback">

这样就可以了 其实使用起来 也挺方便。

setTimeout(function(){
    if($this.hasClass("treeCheck")){
        //获取选中事件 就是注册到dom元素上的事件
        var checkFn = eval($this.attr("oncheck"));
        if(checkFn && $.isFunction(checkFn)) {
            $("div.ckbox", $this).each(function(){
                var ckbox = $(this);
                ckbox.click(function(){
                    //返回是事件类型 是否为选中事件
                    var checked = $(ckbox).hasClass("checked");
                    var items = [];
                    if(checked){
                        //看一下源码结构 其实是获取到节点的li 元素
                        var tnode = $(ckbox).parent().parent();
                        //获取所有节点下才checkbox
                        var boxes = $("input", tnode);
                        if(boxes.size() > 1) {
                            //对应我说的 返回的结构
                            $(boxes).each(function(){
                                items[items.length] = {name:$(this).attr("name"), value:$(this).val(), text:$(this).attr("text")};
                            });
                        } else {
                            items = {name:boxes.attr("name"), value:boxes.val(), text:boxes.attr("text")};
                        }
                    }
                    //调用函数
                    checkFn({checked:checked, items:items});
                });
            });
        }
    }  

时间: 2024-12-14 07:38:07

DWZ (JUI) 教程 tree 控件的选中事件的相关文章

Duilib教程-控件练习

一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为“btnClose”. 然后在 CHelloDuilibWnd 中重载 WindowImplBase::Notify (); 代码如下: void CHelloDuilibWnd::Notify( TNotifyUI& msg ) { if (msg.sType == DUI_MSGTYPE_CLI

Expression Blend实例中文教程(13) - 控件模板快速入门ControlTemplates

上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样式.本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate.ControlTemplate可以称为控件模板,简单的理解为控件结构和行为的集合.在项目设计中,经常会使用ControlTemplate创建新的控件模板或者修改现成的控件模板,使用项目的UI具有独特性.如何使用Blend创建和修改ControlTemplate是本文即将讨论的话题. 概述 对于Contro

SplendidCRM中给来自EditView中的listbox控件设置选中值或数据源

DropDownList list = this.findContol("aas") as DropDownList;list.DataSource = new DataTable() ------------------------------- Control ctl = this.FindControl("NAME");            if (ctl != null)            {                if (ctl is Dro

MFC入门教程之控件(7)设备自动检测ondevicechange的添加和使用

MFC入门学习(1)了解MFC 源文档<http://blog.csdn.net/codectq/article/details/19131227> MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示 源文档<http://blog.csdn.net/codectq/article/details/19131289> MFC入门学习之控件(3)标签控件Tab Control的添加和使用 源文档<http://blog.csdn.net/codectq/article/

DWZ (JUI) 教程 dwz框架 刷新dialog解决方案

原文:DWZ (JUI) 教程 dwz框架 刷新dialog解决方案 在DWZ中进行ajax表单提交后,通过回调函数来返回状态结果,以及返回是否需要刷新父页的navTabId.       DWZ给我们提供了两个回调函数,一个是子窗口为navTab的navTabAjaxDone,一个是子窗口为dialog的dialogAjaxDone,但这两个回调函数都有同一样的缺陷:就是父窗口必须是navTab,也就是说只能刷新navTab,如果父窗口为dialog,则此父dialog是刷新不了的.     

DWZ (JUI) 教程 DWZ中dialog层的刷新

原文:DWZ (JUI) 教程 DWZ中dialog层的刷新 在DWZ开发过程中经常会遇到的一种情况就是:在navTab页面中通过a标签打开一个dialog,在dialog层进行操作后,需要对该dialog层进行必要的刷新操作. 1.首先讲一下思路: 在非dialog页面中,也就是navTab页面中,将传递rel的值作为刷新的途径.在那种情况下,rel值为navTab的navTabId,所以在dialog中,只要将dialogId获取到,并作为rel值在dialog层传递即可. 2.其次给大家看

DWZ(JUI) 教程 普通表单提交

原文:DWZ(JUI) 教程 普通表单提交 一类是普通的表单提交,另一类就是列表页面的表单提交,主要是用来查询搜索列表使用的.今天我就简单介绍一下前者. 这是官网上的普通列表页面, <div class="pageContent"> <form method="post" action="demo/common/ajaxDone.html" class="pageForm required-validate"

html tree 控件

html  tree  控件 html tree 控件

asp.net:easyui tree控件加载url数据

easyui tree控件加载url数据 建表 CREATE TABLE [dbo].[OrganizationStructure]( [Id] [int] IDENTITY(1,1) NOT NULL, [OwnerId] [int] NOT NULL, [Name] [nvarchar](100) NOT NULL, [Type] [int] NULL, CONSTRAINT [PK_OrganizationStructure] PRIMARY KEY CLUSTERED ( [Name]