jQuery MiniUI

标题: 关于treegrid的问题 [打印本页]

作者: 春花之石    时间: 2014-11-28 18:38:54     标题: 关于treegrid的问题

图如下:
[attach]5577[/attach]

tree.on("beforenodecheck",function(e){
    node = e.node;
     console.log(e)
    if(node.cnzt==1){
        e.cancel=true;
      }     
})
我上面的代码,只能实现分别点击子级的时候,可以有采纳这个按钮的时候可以选择,没有就点击不了!
当我点击父类的选择框的时候,判断如果子级的有采纳这个按钮选择框能被选择中,但是如果没有不选择中!我怎么做呀?


作者: felt    时间: 2014-12-1 09:28:23

tree.getChildNodes(node)可以获取所有子节点集合,遍历判断有没有那个按钮
作者: 春花之石    时间: 2014-12-1 11:08:51

felt 发表于 2014-12-1 09:28
tree.getChildNodes(node)可以获取所有子节点集合,遍历判断有没有那个按钮

嗯!如果有那个按钮checked的选中,如果没有不选中!怎么实现呀?如图
作者: felt    时间: 2014-12-1 11:33:22

春花之石 发表于 2014-12-1 11:08
嗯!如果有那个按钮checked的选中,如果没有不选中!怎么实现呀?如图

这你自己遍历下面子节点的数据处理,我不知道你的数据是根据什么出现那个按钮的
作者: 春花之石    时间: 2014-12-1 12:23:40

felt 发表于 2014-12-1 11:33
这你自己遍历下面子节点的数据处理,我不知道你的数据是根据什么出现那个按钮的 ...

[attach]5584[/attach]
我这个是在渲染表格的时候加的这个按钮,点击选择父级的选择框的时候,如果有这个按钮就选中,没有则不选择中(即不点击画勾)

作者: felt    时间: 2014-12-1 13:22:14

春花之石 发表于 2014-12-1 12:23
我这个是在渲染表格的时候加的这个按钮,点击选择父级的选择框的时候,如果有这个按钮就选中,没有则不 ...

你遍历的时候也判断这个条件不就是了
作者: 春花之石    时间: 2014-12-1 14:00:57

本帖最后由 春花之石 于 2014-12-1 14:03 编辑
felt 发表于 2014-12-1 13:22
你遍历的时候也判断这个条件不就是了

[attach]5586[/attach]

作者: 春花之石    时间: 2014-12-1 14:18:09

felt 发表于 2014-12-1 13:22
你遍历的时候也判断这个条件不就是了

我把我的表格代码给你:
     <div id="treegrid1" class="mini-treegrid" style="width:100%; height:95%;display:block"   
    url="$!{request.getContextPath()}/pmba/listTreeData.htm"  showTreeIcon="true"
    treeColumn="taskname" idField="xnId" textField="ssbzbm" parentField="pid" dataField="data.data" resultAsTree="false"
        showCheckBox="true" checkRecursive="true" allowSelect="false" allowCellSelect="false" enableHotTrack="false"
    allowCellWrap="true" expandOnLoad="1" >
    <div property="columns">
            <div type="indexcolumn" width="5%" >编号</div>   
            <div name="taskname" field="ssbzbm" headerAlign="center" allowSort="false" width="10%">所属标准编码</div>
            <div field="zdypmbm"  headerAlign="center"  allowSort="false" width="10%">自定义品目编码</div>
            <div field="zdypmmc" headerAlign="center" allowSort="false" width="10%">自定义品目名称</div>
                      <div field="nsrsbh"  headerAlign="center"  allowSort="false" width="10%">纳税人识别号</div>
            <div field="nsrmc" headerAlign="center" allowSort="false" width="10%">纳税人名称</div>            
                      <div field="bbh"  headerAlign="center"  allowSort="false" width="10%">版本号</div>
            <div field="cjsj" headerAlign="center" allowSort="false" width="10%">上报时间</div>
            <div field="cnzt" headerAlign="center" allowSort="false" width="10%">采纳状态</div>   
            <div field="clzt" headerAlign="center" allowSort="false" width="10%">处理状态</div>  
            <div field="cz" headerAlign="center" allowSort="false" width="10%">操作</div>
    </div>
  </div>  
作者: felt    时间: 2014-12-1 14:25:52

春花之石 发表于 2014-12-1 14:18
我把我的表格代码给你:
     
   

取消掉默认的联动关系checkRecursive="false"
自己onbeforecheck事件里处理需要选中的节点
作者: 春花之石    时间: 2014-12-1 14:54:05

felt 发表于 2014-12-1 14:25
取消掉默认的联动关系checkRecursive="false"
自己onbeforecheck事件里处理需要选中的节点 ...

[attach]5587[/attach]
把那个属性改为false,checked都为false了!


作者: felt    时间: 2014-12-1 15:11:11

春花之石 发表于 2014-12-1 14:54
把那个属性改为false,checked都为false了!

你所要求的check联动已经和我们默认的节点联动逻辑不一致了
所以请去掉默认的联动关系,自己在beforenodecheck事件里面处理,你需要选中的子节点,通过tree.checkNode(node)去选中




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2