Ext.net TreePanel的Checkbox操作及父子联动

需求:

在使用Ext.net的TreePanel时,我们需要使用节点的Checkbox联动状态:

当选中一个树节点的Checkbox时,需要让它的父节点设为选中,并同时选中他所有的子节点。

当取消一个树节点的Checkbox选中状态时,需要同时取消它所有子节点的选中状态。


很多资料上作用node.getUI().checkbox.checked = true/flase;方式来设置节点checkbox的状态,但这种方式在联动的情况下容易出现一个问题,就是通过TreePanel1.getChecked();不能获取到选中节点的值,所以建议使用node.ui.toggleCheck(checked)方法来处理。

但toggleCheck同样存在一个问题:

check子节点时,使用parentNode.getUI().toggleCheck(true)选中父节点,会触发父节点被选中的事件。需要这里不需要它触发父节点被选中事件,需要重定一下toggleCheck方法。


下面demo使用VS2010 + Ext.net 1.2版本实现,测试通过:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TreePanelCheckBox.aspx.cs"
    Inherits="ExtNet12Examples.TreePanel.TreePanelCheckBox" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>



    TreePanel 的Checkbox操作及父子级Checkbox联动Demo
    


    


效果:

 


源码:http://download.csdn.net/detail/llxchen/4533901

原下载:http://download.csdn.net/detail/llxchen/4533696 有Bug,请勿下载。

你可能感兴趣的:(Coolite/Ext,JS/Ext.NET)