sap.ui表更改特定行的颜色

2020-08-26 06:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


考虑一个包含50条记录的表。 visibleRowCount设置为15,因此在表中加载数据时,仅显示15条记录。 我需要根据值更改某些特定行的颜色(可以说,当一个单元格的值为"总计"时)。 假设"总计"出现在第2,4行中。我可以更改这些行的颜色。 在开始向下滚动表之前,getRows()效果很好,问题是getRows()方法仅返回表中的可见行数。 因此,当我向下滚动表格时,第2、4、8行会永久着色。 在这种情况下,应依赖于值"总计"的逻辑不起作用。 我有什么机会可以解决此问题? 谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


考虑一个包含50条记录的表。 visibleRowCount设置为15,因此在表中加载数据时,仅显示15条记录。 我需要根据值更改某些特定行的颜色(可以说,当一个单元格的值为"总计"时)。 假设"总计"出现在第2,4行中。我可以更改这些行的颜色。 在开始向下滚动表之前,getRows()效果很好,问题是getRows()方法仅返回表中的可见行数。 因此,当我向下滚动表格时,第2、4、8行会永久着色。 在这种情况下,应依赖于值"总计"的逻辑不起作用。 我有什么机会可以解决此问题? 谢谢!

付费偷看设置
发送
16条回答
何必丶何苦呢
1楼-- · 2020-08-26 07:43

过去,我利用了聚合绑定工厂功能- https://sapui5 .hana.ondemand.com/#/topic/335848ac1174435c901baaa55f6d7819

我正在做的事情更多地涉及动态控件,因此这可能不是最佳解决方案。

视图:

 <表:表行=" {/行}" visibleRowCount =" 10">
    <表:列>
       
          
             
             
          
       
    
  

控制器:

 resultColumnFactory:函数(sId,oContext){

 var color ="";
 var path = oContext.getPath()。split("/");
 var Row = this.getView()。getModel()。getProperty("/" + path [1] +"/" + path [2]);
             var oText = new Text(sId,{text:Row.value});

             if(Row.value =="好"){
                 color ="绿色";
             }

             oText.addEventDelegate({
                 " onAfterRendering":函数(){
                     这个$(​​)
                         .closest(" tr")
                         .css(" background-color",color);
                 }
             },oText);

             返回oText;
   } 
半个程序猿
2楼-- · 2020-08-26 07:38

要添加我需要的样式类,首先,获取所需的行以应用该样式。 但是,我无法获得所有所需的行,因为getRows()确实仅返回可见行。 谢谢!

Bunny_CDM
3楼-- · 2020-08-26 07:31
jovirus
4楼-- · 2020-08-26 07:33

谢谢Mahesh! 我不知道为什么,但是从未调用过onAfterRendering方法。 我尝试将其附加到表并覆盖它:oTable.onAfterRendering = function(){..... code ....}

oTable.addEventDelegate({" onAfterRendering":function(){.... code ......}},此);

在两种情况下,当我上下滚动表时,代码流都不会进入这些函数。

谢谢!

当学会了学习
5楼-- · 2020-08-26 07:35

您好谢尔盖·科赫

SAP.UI.TABLE仅在滚动时更改可见行中的数据,这不同于SAP.M表为新行创建新ui元素。

由于SAP.UI表中的行从未更改,因此可以使用表的onAfterRendering事件并删除样式类,然后再次添加样式类(根据您的逻辑)。 现在在此事件中,如果您检查getRows(),则会找到最新的行。

理想情况下,您可以将样式类绑定到格式化程序,并根据行数据进行更改,但是当我 上次尝试绑定对于控件的类property(style)无效。.我不确定它是否在当前版本中有效,但是您也可以检查一下。

BR,

Mahesh

大道至简
6楼-- · 2020-08-26 07:37

嗨,Sergey,

尝试以下方式

 
 <列>
    
     

并相应地更新CSS。

希望这可以解决您的问题...

一周热门 更多>