Насколько я мог найти, событие ON_SCROLL будет работать, только если у элемента есть полоса прокрутки;Если вы хотите захватить событие mousewheel, вам нужно сделать это в javascript и создать собственное событие.
Вот что я сделал, чтобы захватить прокрутку мыши в сетке подкачки, чтобы перемещать страницы с помощью колесика мыши;часть, которая отправляет уведомление на серверную сторону, имеет следующую строку: this.getPaginal (). fire ('onPaging', nextPage)
<zk>
<zscript>Object[] o = new String[150];
</zscript>
<hlayout id="layout" vflex="1" hflex="1">
<grid id="grid1" width="300px" autopaging="true" height="300px" mold="paging" vflex="true">
<rows>
<row forEach="${o }">
<label value="item ${forEachStatus.index}"/>
</row>
</rows>
</grid>
</hlayout>
<zscript><![CDATA[
{
grid1.setWidgetOverride("bind_", "function(){\r\n"+
"this.$supers('bind_', arguments);\r\n"+
"var node = this.$n();\r\n"+
"if (node.addEventListener)\r\n"+
" node.addEventListener('DOMMouseScroll', this.proxy(this.onMouseWheel), false);\r\n"+
"node.onmousewheel = this.proxy(this.onMouseWheel);\r\n"+
"}");
grid1.setWidgetOverride("onMouseWheel",
"function(event){\r\n" +
" var delta = 0;\r\n" +
" if (!event) /* For IE. */ \r\n" +
" event = window.event;\r\n" +
" if (event.wheelDelta) { /* IE/Opera. */\r\n" +
" delta = event.wheelDelta / 120;\r\n" +
" if (window.opera) \r\n" +
" delta = -delta;\r\n" +
" }\r\n" +
" else \r\n" +
" if (event.detail) {\r\n" +
" delta = -event.detail / 3;\r\n" +
" }\r\n" +
" if (delta) {\r\n" +
" console.log('delta = ' + delta); " +
" var currPage = this.getPaginal().getActivePage(); \r\n" +
" var nextPage = Math.min (this.getPageCount() - 1, Math.max (0, currPage - delta)); \r\n" +
" this.getPaginal().fire('onPaging', nextPage);\r\n" +
" }\r\n" +
" if (event.preventDefault) \r\n" +
" event.preventDefault();\r\n" +
" event.returnValue = false;\r\n" +
"} ");
}
]]></zscript>