从上次版本更新(从openui5 1.36.12到openui5 1.38.4),以下代码不再有效:
var myTable = new sap.ui.table.Table();
myTable ._oVSb.attachScroll(function() {
colorTheTableRows();
})
我正在使用" attachScroll"事件,以使用特定逻辑为表行着色。 自上次openui5版本更新以来,我在控制台中收到此错误:
Uncaught TypeError: Cannot read property 'attachScroll' of undefined
我试图调试此问题,似乎已从sap.ui.table.Table中删除了对象_oVSb。
我的最终目标是根据内容绘制不同颜色的行......有没有其他方法可以达到此功能?
由于
答案 0 :(得分:1)
您仍然可以使用jQuery的.scroll()获取表格的滚动事件。
onAfterRendering: function(){
//Register handler for scroll event
$("tbody").scroll(function(){
// your stuff
});
}
答案 1 :(得分:1)
即使我想要这个事件也有一些如何来到这个线程。我试过@Dopedev解决方案它没有工作然后我改变了位,如下所示
$("#<tablid>-vsb").scroll(function() {
console.log("Table is scrolled")
});
而不是获取tbody获取 table-id -vsb 并附加滚动功能
答案 2 :(得分:1)
我知道之前的帖子之一已被标记为“正确”的答案,但它对我不起作用,所以我想我会发布我的工作解决方案,因为它可能对其他人有帮助。以下代码将有效地“附加”到1.38中的表的垂直滚动事件:
onAfterRendering: function() {
if (this.firstTime) { //You only want to override this once
var oTable = this.getView().byId("<YOUR_ID_HERE>");
//Get a reference to whatever your custom handler is
var oHandler = this.handleScroll;
//Store a reference to the default handler method
var oVScroll = oTable.onvscroll;
oTable.origVScrollHandler = oVScroll;
oTable.onvscroll = function(i) {
//Call the 'default' UI5 handler
oTable.origVScrollHandler(i);
//Call your handler function, or whatever else you want to do
oHandler();
};
this.firstTime = false;
}
},
答案 3 :(得分:0)
var myTable = new sap.ui.table.Table("myTable");
渲染后:
sap.ui.getCore().byId("myTable-vsb").attachScroll(function() {
colorTheTableRows();
})