更改视图后修改CSS样式

2020-09-24 00:54发布

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

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


亲爱的

我想操纵树形表并更改某些行的背景色。 但是,我发现它按以下顺序工作:

  1. 背景颜色变为蓝色
  2. 删除列,插入部分
  3. 背景颜色变回白色

我该怎么办?

下面是我的代码:

 this.oTreeTable.removeColumn(4);
 this.oTreeTable.removeColumn(3);
 this._oSection = sap.ui.xmlfragment(oView.getId()," sap.ui.scpint.precheck.view.fragment.EditVariantBasic",此);
 oView.byId(" ObjectPageLayout")。insertSection(this._oSection,0);
 var aRows = this.oTreeTable.getRows();
 aRows.forEach(function(row){
 var sPath = row.getBindingContext()。getPath();
 var oModel = that.oTreeTable.getModel();
 var oData = oModel.getProperty(sPath);
 if(oData.SELECTED){
 row。$()。css('background-color','#e8eff6');
 }
 });
 

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

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


亲爱的

我想操纵树形表并更改某些行的背景色。 但是,我发现它按以下顺序工作:

  1. 背景颜色变为蓝色
  2. 删除列,插入部分
  3. 背景颜色变回白色

我该怎么办?

下面是我的代码:

 this.oTreeTable.removeColumn(4);
 this.oTreeTable.removeColumn(3);
 this._oSection = sap.ui.xmlfragment(oView.getId()," sap.ui.scpint.precheck.view.fragment.EditVariantBasic",此);
 oView.byId(" ObjectPageLayout")。insertSection(this._oSection,0);
 var aRows = this.oTreeTable.getRows();
 aRows.forEach(function(row){
 var sPath = row.getBindingContext()。getPath();
 var oModel = that.oTreeTable.getModel();
 var oData = oModel.getProperty(sPath);
 if(oData.SELECTED){
 row。$()。css('background-color','#e8eff6');
 }
 });
 
付费偷看设置
发送
4条回答
宇峰Kouji
1楼-- · 2020-09-24 00:58

你好。

这对我有用:

 var tableRows = that.getView()。byId(" supplierResultsTable")。getRows();
 tableRows.forEach(function(row){
     row。$()。css('background-color',"#e8eff6");
 });
 

所有行变成蓝色。 不知道解决方案有什么问题,但我会检查yore if语句,并确保在插入行后确定颜色。

您可以通过将其包装在超时函数中来进行测试

 setTimeout(function(){
 var tableRows = that.getView()。byId(" supplierResultsTable")。getRows();
 tableRows.forEach(function(row){
 row。$()。css('background-color',"#e8eff6");
 });
 },1000); 

这应该可以解决所有异步问题,但是仅出于测试目的,除非是唯一的解决方案,否则请不要在实时系统中执行此操作。

Nir深蓝
2楼-- · 2020-09-24 01:08

您好。

很抱歉,但我不了解该查询。 "但是,我发现它按以下顺序工作:"

您要做什么? 在更改视图时运行该代码?

huskylover
3楼-- · 2020-09-24 01:18

嗨,尼古拉斯,

我想制作" row。$()。css('background-color','#e8eff6');" 工作。

使用我的代码,它开始时变成蓝色,但最后变成白色。

小c菟菟
4楼-- · 2020-09-24 01:03

很好。 然后,您知道这是一个异步问题。 就个人而言,如果不将其用于IE,我会做出承诺。 如果必须在IE中使用它,则需要另一个lib来保证工作。 IE不支持ES6标准。 边缘很好。 一个承诺将等待运行代码,直到它获取数据:

 somFuncName:function(){
 返回新的Promise(function(resolve,reject){
    //使api调用eks,缺少一些代码:
     oModel.read(sPath,null,null,true
 函数(oData){
                    //如果我们得到200,则解决。
 resolve(oData);
 },
 函数(oError){
                  //如果从服务器收到错误,则拒绝并发送错误
 reject(oError);
 });
 });
 } 

然后您可以这样称呼它:

                    //然后在接收数据后将运行
 this.someFuncName()。then(function(oData){
     console.log(oData)
 })

 测试并查看其工作方式的一种好方法是将oModel.read包装在setTimeout中。

一周热门 更多>