Extjs开发之对于TreePanel的MultiSelectionModel重置不起作用

在项目中遇到问题,弹出页面的查询重置,对于Treepanel的MultiSelectionModel不起作用。

需要点击“查询”按钮弹出子菜单,进行条件查询。(如图:Treepanel_1.gif)



 

 

 

 

但是对于查询界面,点击“重置”时,输入框可以重置为空,而Treepanel的MultiSelectionModel不起作用,即点击重置后,复选框没有取消勾选。(如图:Treepanel_2.gif)



 

 

 

 

最后找到问题所在:
1)光tmos_form.form.reset();是不管用的
2)最后还要重置置所有多选的“值”和“显示”为false:setChildNodesCheck(worksheetstatetroot, false);
3)还要清除 父Store的参数,否则再重新点击“查询”按钮时,原来条件没有删除,查找出来的结果和预期的不同:parent.paraStore.removeAll();
并且要注意顺序,测试时,先重置,在设置false,最后删除。
{
 text: '重置',
 handler: function(){
  tmos_form.form.reset();
  setChildNodesCheck(worksheetstatetroot, false);        
  //将父页面的原有查询参数除去
  parent.paraStore.removeAll();                  
 }
}
 //将父页面的原有查询参数除去
 parent.paraStore.removeAll();
}

 

代码如下:

Ext.onReady(function(){
    Ext.QuickTips.init();
    ......
    
    //工单状态选择树
    var worksheetstatetroot = new Ext.tree.AsyncTreeNode({   
        id: "worksheetstatetroot",   
        text: "工单状态"  
    });   
    
   var worksheetstatetree= new Ext.tree.TreePanel({ 
      id:"worksheetstatetreepanel",
      title: "工单状态",   
      renderTo: Ext.getBody(),  
      autoScroll : true, 
      lines:true,//树线
    width: 265,   
      height:200,  
      animate:false, 
      root: worksheetstatetroot,   
      useArrows: false,   
      selModel: new Ext.tree.MultiSelectionModel(),
      loader:new Ext.tree.TreeLoader({
        dataUrl:"<%=request.getContextPath()%>/workSheetAction.do?dispatch=getDicTree",
        baseParams:{DIC_TYPE:'工单状态'}
      })           
    })   
    worksheetstatetree.getRootNode().expand(true); //级联展开所有子节点  

   var tmos_form=new Ext.form.FormPanel({
          plain:true,
          layout:"form",
          labelAlign: 'right',
          labelWidth: 70,
          frame:true,
          width:'100%',
          autoHeight:true,//使自适应展开排版			
       items:[{//行1
 	 layout:'column',
 	 items: [
                        //列
             {   ...... },
          	    {   columnWidth:.33,
          	         layout: 'form', 
          	         xtype: 'fieldset', 
          		 autoHeight: true,  
          		 style: 'margin-top: 0px;margin-left: 5px;',
              	  items: [          					
              	       new Ext.form.NumberField({   
              		 fieldLabel:'新电话号码',   
              		 name:'OLD_NUM',
              		id:'OLD_NUM',
              		allowDecimals : false,//不允许输入小数   
              		allowNegative : false,//不允许输入负数   
              		nanText :'请输入有效的整数',//无效数字提示   
              		width : 225
            		     }),
            		     worksheetstatetree
                       	  ]
           	     }        				   				 		
 	]
         }],
        buttons: [{
	 text: '重置',
	 handler: function(){
	      tmos_form.form.reset();
	      setChildNodesCheck(worksheetstatetroot, false);  						
	      //将父页面的原有查询参数除去
	    parent.paraStore.removeAll();	               		
	 }
       }]
  });
 tmos_form.render("tmos_form");	
 });

//设置子节点的选中或者是不选中
function setChildNodesCheck(node, blnChecked) {
    var iLength = node.childNodes.length;
    if (iLength == 0) return;
    var childNode = null;
    for (var i = 0; i < iLength; i++) {
        childNode = node.childNodes[i];
        childNode.attributes.checked = blnChecked;//这个是改变值的
        childNode.getUI().checkbox.checked = blnChecked;//这个是改变显示的
    }
};

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值