1

ツールバーにあるチェックボックスを「チェック」して、リストにあるすべてのチェックボックスを「チェック」する必要がある状況で立ち往生しています。

チェックボックスリストを作成するコードは次のとおりです:-

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

これが私のチェックボックスコードです:-

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」で定義されたすべてのチェックボックスがチェックされ、その逆も同様です。異なる見解)。

ですから、この問題の解決策を教えてください。

事前にサンクス。

4

1 に答える 1

2

わかりました、私はあなたのsenchafiddleを更新してそれを機能させました。実際には、ここに私があなたのコードに追加したものがあります:

リストコントローラーに2つの機能を追加して、ツールバーのチェックボックスでアクションを管理します。

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 が必要ですが、動作はここにあります。

于 2012-05-10T08:02:56.013 に答える