如何从多输入取消选择中取消选择选择对话框的值?

2020-09-09 18:24发布

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

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


大家好,

我正在处理一项自定义应用程序要求。 就我而言,我需要在多输入上使用价值帮助。 我在vlaue帮助片段上加载了SelectDialog。 它具有多选选项。 一旦选择了几个值,便在令牌输入中将这些值设置为令牌(带关闭选项的文本)。

如果我在多输入中选择了一个值,则也应在我的值帮助内取消选择该值。 但是我不知道该怎么做?

请帮助我确定解决方案。 请找到下面的代码和图像以获取更多信息。

图片1:

图片2:

控制器代码:

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/json/JSONModel",
 " sap/ui/model/Filter",
 " sap/m/MessageToast",
 " sap/m/Token"
 ],函数(控制器,JSONModel,过滤器,MessageToast,令牌){
 "使用严格";
 var aPlant;
 var aContexts;


 返回Controller.extend(" com.zcombo_box_test.controller.MultiInput",{


/**
 *在实例化控制器并且已经创建其View控件(如果有)时调用。
 *可用于在视图显示之前对其进行修改,绑定事件处理程序以及进行其他一次性初始化。
 * @memberOf com.zcombo_box_test.view.MultiInput
 */
 onInit:函数(){
 var oModel = new JSONModel(jQuery.sap.getModulePath(" com.zcombo_box_test","/util/NotificationType.json")));
 this.getView()。setModel(oModel);
 },
 onHandleValuehelp:函数(oEvent){
 this.inputId = oEvent.getSource()。getId();
//创建价值帮助对话框
 如果(!this._valueHelpDialog){
 this._valueHelpDialog = sap.ui.xmlfragment(
 " com.zcombo_box_test.util.Plant",
 这个
 );
 this.getView()。addDependent(this._valueHelpDialog);
 }
 var oListItem = sap.ui.getCore()。byId(" id_list_type");
 var oList = this._valueHelpDialog._aSelectedItems;
 如果(oList){
 oList.pop();
 }
 oList = this._valueHelpDialog._aSelectedItems;
 this._valueHelpDialog.open();
 },
 handleValueHelpSearchPlant:函数(oEvent){
 var sValue = oEvent.getParameter(" value");
 var oFilter = new Filter(" key",sap.ui.model.FilterOperator.EQ,sValue);
 var oBinding = oEvent.getSource()。getBinding(" items");
 oBinding.filter([oFilter]);
 },
 handleValueHelpClosePlant:函数(oEvent){
 aPlant = [];
 aContexts = oEvent.getParameter(" selectedContexts");
 如果(aContexts && aContexts.length){
 aContexts.map(function(oContext){
 aPlant.push(oContext.getObject()。key);
 返回oContext.getObject()。key;
 })。join(",");
 }其他{
 MessageToast.show("未选择新项目。");
 }
 var oMultiInput = this.byId(this.inputId);
 如果(oEvent.sId ==="确认"){
 oMultiInput.removeAllTokens();
 }
 for(var plant = 0; plant 
 

View.xml:

 
 
 <页面>
 <页面标题="标题">
 <内容>
  
 
 
 
 
 
 

Fragment.xml:

 
 
 
 
 
 

谢谢

此致

JK。

(34.5 kB)

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

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


大家好,

我正在处理一项自定义应用程序要求。 就我而言,我需要在多输入上使用价值帮助。 我在vlaue帮助片段上加载了SelectDialog。 它具有多选选项。 一旦选择了几个值,便在令牌输入中将这些值设置为令牌(带关闭选项的文本)。

如果我在多输入中选择了一个值,则也应在我的值帮助内取消选择该值。 但是我不知道该怎么做?

请帮助我确定解决方案。 请找到下面的代码和图像以获取更多信息。

图片1:

图片2:

控制器代码:

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/json/JSONModel",
 " sap/ui/model/Filter",
 " sap/m/MessageToast",
 " sap/m/Token"
 ],函数(控制器,JSONModel,过滤器,MessageToast,令牌){
 "使用严格";
 var aPlant;
 var aContexts;


 返回Controller.extend(" com.zcombo_box_test.controller.MultiInput",{


/**
 *在实例化控制器并且已经创建其View控件(如果有)时调用。
 *可用于在视图显示之前对其进行修改,绑定事件处理程序以及进行其他一次性初始化。
 * @memberOf com.zcombo_box_test.view.MultiInput
 */
 onInit:函数(){
 var oModel = new JSONModel(jQuery.sap.getModulePath(" com.zcombo_box_test","/util/NotificationType.json")));
 this.getView()。setModel(oModel);
 },
 onHandleValuehelp:函数(oEvent){
 this.inputId = oEvent.getSource()。getId();
//创建价值帮助对话框
 如果(!this._valueHelpDialog){
 this._valueHelpDialog = sap.ui.xmlfragment(
 " com.zcombo_box_test.util.Plant",
 这个
 );
 this.getView()。addDependent(this._valueHelpDialog);
 }
 var oListItem = sap.ui.getCore()。byId(" id_list_type");
 var oList = this._valueHelpDialog._aSelectedItems;
 如果(oList){
 oList.pop();
 }
 oList = this._valueHelpDialog._aSelectedItems;
 this._valueHelpDialog.open();
 },
 handleValueHelpSearchPlant:函数(oEvent){
 var sValue = oEvent.getParameter(" value");
 var oFilter = new Filter(" key",sap.ui.model.FilterOperator.EQ,sValue);
 var oBinding = oEvent.getSource()。getBinding(" items");
 oBinding.filter([oFilter]);
 },
 handleValueHelpClosePlant:函数(oEvent){
 aPlant = [];
 aContexts = oEvent.getParameter(" selectedContexts");
 如果(aContexts && aContexts.length){
 aContexts.map(function(oContext){
 aPlant.push(oContext.getObject()。key);
 返回oContext.getObject()。key;
 })。join(",");
 }其他{
 MessageToast.show("未选择新项目。");
 }
 var oMultiInput = this.byId(this.inputId);
 如果(oEvent.sId ==="确认"){
 oMultiInput.removeAllTokens();
 }
 for(var plant = 0; plant 
 

View.xml:

 
 
 <页面>
 <页面标题="标题">
 <内容>
  
 
 
 
 
 
 

Fragment.xml:

 
 
 
 
 
 

谢谢

此致

JK。

(34.5 kB)
付费偷看设置
发送
3条回答
CJones
1楼-- · 2020-09-09 18:57

您好 Jayakrishnan Chandramohan

我想您需要手动进行操作 因为它不会照顾它。 在打开弹出窗口之前,请同时在多输入数据和f4help数据上循环并相应地设置所选内容。

如果使用绑定,则将更加容易。 但是我想努力会很相似。

BR,

马西什

callcenter油条
2楼-- · 2020-09-09 18:59

是的,我正在尝试...希望我能得到 的东西。 但是我想知道,为什么在进行多选时,setSelectedItems()不能作为"选择"对话框的一部分。

小灯塔
3楼-- · 2020-09-09 18:53

我正在解决这个问题,因为我确定了解决方案。 我分享了以下博客中的解决方案,请提供您的建议/意见。

https://blogs.sap.com/2019/04/23/handling-select-and-de-select-options-with-input-select-dialogmulti-select-control。/

谢谢。

此致

JK。

一周热门 更多>