我有一个网格面板(里面有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);
为什么它不滚动的任何想法?谢谢!
答案 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;