日期:2014-05-16  浏览次数:20528 次

Extjs4.1 如何 监听 滚动条
本帖最后由 jobschen 于 2013-04-11 17:11:58 编辑
各位大神,
    用extjs4.1,有这样一个问题,我在panel(Ext.panel.Panel)上放一个formPanel(Ext.form.panel),然后在这个formPanel上要再放20个subformpanel(Ext.form.panel).
panel的autoScroll属性为true,由于subformpanel太多,不想把它们一次性加载,第一次显示两个,当panel的滚动条到底部时再继续加载剩下的subformpanel,如何实现?
急求!!!
extjs4.1?scroll?监听

------解决方案--------------------
添加Panel scroll监听事件,support extended javascript 2.0以上,例子是4.0的。

{
        title: 'Framed panel: Width 280/Height 180',
        html: html,
        collapsible: true,
        frame: true,
        autoScroll: true,
        width: 280,
        height: 180,
listeners: {
  render: function(p){
p.body.on('scroll', function(){
  // do stuff
  alert(1)
}, p);
  }
}
    }

------解决方案--------------------
二楼的代码是可用的,能够触发滚动的事件。楼主的意思是必须要到底部的时候触发么?

Ext.define('mvcDemo.view.makerChecker.userDetailPanel',{
extend:'EpssCommonPanel'
   ,alias:"widget.mckuserdetailpanel"
   ,region:'center'
   ,layout:{type:'vbox',align:'stretch'}
   ,overflowY:'auto'
   ,bodyStyle :{backgroundColor:'#FFFFFF'}
   ,defaults:{anchor:'-16'}
   ,margin:0
   ,height:500
   ,bodyPadding:5
   ,dockedItems: [{xtype:'mcktoolbar',titleText:"Demo > makerCheckerMaintenance"}]
   ,items:[
{xtype: 'mckuserdetail'},
{xtype: 'mckproductgrid'},
{xtype: 'mckbuttonbar'}
]
,listeners: {
  render: function(component){
   component.body.on('scroll', function(e){
console.log("scroll");
//component.add({xtype: 'mckbuttonbar'});
var d=component.body.dom;
if(d.scrollTop === d.scrollTopMax){
alert("scroll to end")
}
   },this,{buffer :100}); 
   }
    } 
});