2012-05-09 2 views
1

나는 툴바에있는 체크 박스를 '확인'하여 목록에있는 모든 체크 박스를 '확인'해야하는 상황에 처해있다.목록의 모든 확인란을 '선택'하여 단일 확인란을 '선택'하는 방법?

가 여기에 체크 박스 목록을 작성하는 코드입니다 : - : 것 나는 모든 체크 박스는 "itemTpl"에 정의 된 것을 원하는, 위의 체크 박스에 체크에

var checkBox = { 
      xtype: 'checkboxfield', 
       name : 'all', 
      // label: 'All', 
       itemId: 'all', 
       value: 'all', 
       lableWidth: "0", 
       width: 1, 
       padding: '0 0 15 30', 
       checked: false, 
       listeners: { 
        check:function() { 
        // alert("check"); 

         item = Ext.get("status"); 
         console.log("item:-"+Ext.JSON.encode(item)); 

         chkBox = item.down('input').dom; 

         var checkboxes = Ext.getStore('group'); 
         console.log(checkboxes.getCount()); 

         for(var i=0;i<checkboxes.getCount();i++){ 
         chkBox.checked = true; 
         } 

        }, 
        uncheck:function(){ 
        // alert("uncheck"); 
        } 
       } 
     }; 

-

itemTpl: '<input type="checkbox" name="box" enabled="enabled" value="open" 
name="comment_status" id="status" <tpl if="active">checked="checked"</tpl> /> 
{groupName}{#}', 

여기 내 체크 박스 코드입니다 체크 내 코드를 안다 : function() {} 내 문제를 해결하는 좋은 (다른보기의 두 코드 모두).

이 문제에 대한 해결책을 알려주십시오.

고지.

+0

체크 박스와 연결된 모델이 있습니까? – Sephy

+0

네, 체크 박스 목록에 모델이 있습니다 ... – himanshu

+0

글쎄, 어쨌든, 당신은 당신의 목록 저장소를 반복해야하며 각 항목에 대해 체크 상자에 해당하는 부울을 true로 변경해야합니다. – Sephy

답변

2

좋아, 나는 그것이 작동하게하기 위해 your senchafiddle을 업데이트했다.

checkAll:function(){ 
    this.getCheckboxList().getStore().each(function(record){record.set('active', true);}); 
}, 
uncheckAll:function(){ 
    this.getCheckboxList().getStore().each(function(record){record.set('active', false);}); 
} 

그리고 체크 박스와 도구 모음을 추가

도구 모음에서 체크 박스에 작업을 관리, 목록 컨트롤러에이 개 기능을 추가 : 물질에서 , 여기에 내가 당신의 코드에 추가 것입니다 목록 위의 모두 (XD)를 지배 :

{ 
     xtype : 'toolbar', 
     docked: 'top', 
     title: 'Check !', 
     items:[{ 
      xtype: 'checkboxfield', 
      name : 'all', 
      value: 'checkAll', 
      listeners:{ 
       check:function(){ 
        MyApp.app.getController('MainViewController').checkAll(); 
       }, 
       uncheck:function(){ 
        MyApp.app.getController('MainViewController').uncheckAll(); 
       } 
      } 
     }] 
    } 

이것은 ckeckbox 좋은 만들기 위해 당신의 부분에 약간의 CSS를해야하지만 동작은 여기에있다.

+0

고맙습니다. 고맙습니다.하지만 이미 다음 코드를 사용하여 도움을 받았습니다. var items = Ext.getStore ('group '); items.each (function (record) { record.set ('active', true); }); 어쨌든 다시 ur 지원 및 ur 방법 컨트롤러에 의해 그것을 할 수있는 또 다시 솔기 좋은 생각. – himanshu

+1

그래, 그게 좋은 생각이야. 상점을 업데이트하면보기가 자동으로 갱신됩니다. 각각을 사용하는 것은 저장소의 모든 요소를 ​​반복하는 가장 간단한 방법입니다. 컨트롤러의 방법은 ST2에서 올바른 방법이라고 생각합니다. 내 방식은 checkAll 체크 박스에 정의 된 ref와 컨트롤러에 정의 된 컨트롤을 사용하여 더 깨끗하게 처리 할 수 ​​있지만! – Sephy

관련 문제