如何将智能表的选择列绑定到OData模型

2020-08-18 17:44发布

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

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


我添加了一个智能表,它处于多选择模式。 一切正常。 除了我想将行选择复选框绑定到我的oData服务中的属性。 当前,如果他们选择了一些行,我会将他们选择的行发送到后端,然后odata服务将记录更新为" checked = true"。 当他们重新访问该记录时,我希望将选择复选框绑定到oData模型中的true/false属性(类似于ALV中的工作方式)

视图中的SmartTable

 
 
 

onBeforeRebindTable函数(我一直在尝试通过编程方式设置_onBindingDataReceivedListener函数中的复选框,但我也没有取得多大成功,addSelectedIntervals()似乎在 该功能是一个循环遍历各行,查看该属性是否为true并将该行设置为selected的方法,但我也无法使其正常工作。

 onBeforeRebindTable:函数(oEvent){
 var oBindingParams = oEvent.getParameter(" bindingParams");
 oBindingParams.parameters.threshold = 50000;
 oBindingParams.parameters.countMode ="内联";
 oBindingParams.parameters.operationMode ="服务器";
 oBindingParams.parameters.numberOfExpandedLevels = 1;
 var oFilter = new sap.ui.model.Filter(" RootNodeId",sap.ui.model.FilterOperator.EQ,this._oGUID);
 oBindingParams.filters.push(oFilter);
 this.addBindingListener(oBindingParams," dataReceived",this._onBindingDataReceivedListener.bind(this));
 

这里的想法是,如果odata属性" checked = true",则将对其进行检查。

我还试图将以下内容添加到我的smarttable中。 想法是添加一个新的自定义列,并将复选框字段绑定到该列。 除不再显示树表外,此方法有效。

 
    <表:列>
       
          
    
 
 

(10.6 kB)

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

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


我添加了一个智能表,它处于多选择模式。 一切正常。 除了我想将行选择复选框绑定到我的oData服务中的属性。 当前,如果他们选择了一些行,我会将他们选择的行发送到后端,然后odata服务将记录更新为" checked = true"。 当他们重新访问该记录时,我希望将选择复选框绑定到oData模型中的true/false属性(类似于ALV中的工作方式)

视图中的SmartTable

 
 
 

onBeforeRebindTable函数(我一直在尝试通过编程方式设置_onBindingDataReceivedListener函数中的复选框,但我也没有取得多大成功,addSelectedIntervals()似乎在 该功能是一个循环遍历各行,查看该属性是否为true并将该行设置为selected的方法,但我也无法使其正常工作。

 onBeforeRebindTable:函数(oEvent){
 var oBindingParams = oEvent.getParameter(" bindingParams");
 oBindingParams.parameters.threshold = 50000;
 oBindingParams.parameters.countMode ="内联";
 oBindingParams.parameters.operationMode ="服务器";
 oBindingParams.parameters.numberOfExpandedLevels = 1;
 var oFilter = new sap.ui.model.Filter(" RootNodeId",sap.ui.model.FilterOperator.EQ,this._oGUID);
 oBindingParams.filters.push(oFilter);
 this.addBindingListener(oBindingParams," dataReceived",this._onBindingDataReceivedListener.bind(this));
 

这里的想法是,如果odata属性" checked = true",则将对其进行检查。

我还试图将以下内容添加到我的smarttable中。 想法是添加一个新的自定义列,并将复选框字段绑定到该列。 除不再显示树表外,此方法有效。

 
    <表:列>
       
          
    
 
 

(10.6 kB)
付费偷看设置
发送
4条回答
何必丶何苦呢
1楼-- · 2020-08-18 18:26

您的问题是什么?

odata有数据,但是未选中表复选框?

悠然的二货
2楼-- · 2020-08-18 18:26

我通过将更改为< table:TreeTable>

我会看看我能否使它工作。 绑定到提供的列会很好。

悻福寶寶
3楼-- · 2020-08-18 18:46

这就是我要做的事情。 它使带有文本的复选框缩进,我可以接受。 SAP似乎并没有为我们提供绑定该列的方法,这似乎让人很想念。

CPLASF-自律
4楼-- · 2020-08-18 18:24

Paul McFarling 我的建议是使用selectionMode =" None"并在第一部分中创建一个自定义列。
检查此博客(我知道用italnglish写),但我认为对您有用:
https://blogs.sap.com/2020/02/03/hierarchy-selection-in-tree-table/

一周热门 更多>