如何在Ext JS 3.4网格中滚动到底部?

时间:2014-10-22 08:16:29

标签: javascript extjs

我有一个网格面板(里面有Ext.ux.grid.RowEditor面板),我想滚动到底部(靠近底部我的Ext.ux.grid.RowEditor没有完全显示),

这段代码不起作用:

this.MyGrid.getView().on('scrollToBottom', function(){
        var inputEl = this.MyGrid.el.dom;
        inputEl.scrollTop = inputEl.scrollHeight;
    }, this);

.....

然后按下保存按钮时我点火事件:

this.MyGrid.getView().fireEvent('scrollToBottom',this);

为什么它不滚动的任何想法?谢谢!

3 个答案:

答案 0 :(得分:2)

.on()函数用于为事件设置侦听器函数,而不是添加自定义事件。 同样,.fireEvent()函数用于触发对象上的事件。 AFAIK你无法定义自己的事件,也没有" scrollToBottom" ExtJs中的事件。

您要做的是将scrollToBottom代码定义为函数,然后从保存按钮单击处理程序中调用它

答案 1 :(得分:1)

请尝试使用 addEvent 方法(使用init)向网格添加事件,然后将该事件作为侦听器添加到网格中。 必要时触发事件(在用户点击保存按钮的情况下)。使用 fireEvent 方法并在您的监听器中订阅它。

示例代码如下所示(您必须添加此事件然后触发它。)在 init 组件中添加事件如下所示(在下面这指的是网格范围)< / p>

this.addEvents('SCROLL_TO_BOTTOM');

您必须订阅活动并为网格设置滚动高度。将以下监听器添加到您的网格中。

listeners: {
         'SCROLL_TO_BOTTOM': this.handleScroll,
         scope: this
         }

处理滚动的功能

 handleScroll:function(){   
           var inputEl = this.MyGrid.el.dom;
           inputEl.scrollTop = inputEl.scrollHeight;
         }

希望这可以帮助你...

答案 2 :(得分:0)

我找到了解决方案!没有其他事件和听众,只是

var inputEl = this.myGrid.getView().scroller.dom;
inputEl.scrollTop = inputEl.scrollHeight;