0

我正在使用 getItemTextTpl 将复选框组件添加到嵌套列表中 - 我还希望能够覆盖默认的点击事件,以便在选中复选框时显示弹出消息并且列表不会前进到下一个项目。请参阅下面的配置 - 我能够捕获复选框检查事件,但不知道如何覆盖嵌套列表的默认行为。感谢您的帮助,如果我能澄清任何细节,请告诉我 - 如果有帮助,我正在使用 sencha 建筑师

嵌套列表配置:

getItemTextTpl: function(recordnode) {
        return '<table width="100%"><row>' + 
        '<tr><td width="100%" align="left" width="100%" valign="bottom"><div class="view"><input type="checkbox" <tpl  if="done">checked</tpl> />&nbsp;&nbsp;{name}</td></row></table>'; 

    }

控制器:

onNestedlistInitialize: function(component, options) {
// setup taskList to listen on the tap on the checkbox and show a popup window 
component.element.on({
    tap: function(e, el) {
        console.log('checkbox tapped'); 
        //need to override nestedlist tap event and show popup message
    }
});
4

1 回答 1

1

为了防止列表切换到下一张卡片,您需要像这样覆盖 activeitemchange:

var nestedList = Ext.create('Ext.NestedList', {
  ...
  listeners:{
    activeitemchange:function(){
      if(...){ // Check if you checkbox is checked or not
         return false; // return false prevent the nestedlist from switching to the next view
      }
    }
  }
});
于 2012-06-15T18:58:37.850 回答