根据表中另一个组合框的值填充组合框列表

2020-09-08 09:42发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有以下情况: 我有一...

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

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


嗨,

我有以下情况:

我有一张带两个组合框的桌子。 从ComboBox1中选择一个值后,我想填充ComboBox2的列表。

我在绑定每行级别的动态列表时遇到困难。 我通读了两个问题,但找不到类似的情况。 因为我需要在每行有一个不同的列表,一旦从ComboBox1中选择了一个值,就需要呈现该列表。 有人可以协助我采取这种方法。

2条回答
huskylover
2020-09-08 10:19

嗨,我有类似的情况。

1/我用以下结构定义了一个JSON模型(名称:comboxvalues),其中包含第二个组合框的所有可能值:

 {:
  [
   {
    键:<值>,
    文字:<值>
   }
  ]
 }
 举个例子:
 {
  list_a:[
   {
     键:key_a1,
     文字:value_a1
   },
   {
     键:key_a2,
     文字:value_a2
   },
   {
     键:key_a3,
     文字:value_a3
   }
 ],
 list_b:[
   {
     键:key_b1,
     文字:value_b1
   },
   {
     键:key_b2,
     文字:value_b2
   },
   {
     键:key_b3,
     文字:value_b3
   }
 ]
 } 

2/我在视图中设置了第一个组合框,该组合框代表了可能的值列表,并绑定了selectedKey属性

 <组合框
 id =" combobox1"
 selectedKey =" {combobox1_selectedkey}"
 >
 
 
  

对于此示例,我直接设置了组合框的聚合,但是最好将聚合绑定与" items"聚合一起使用。

3/我基于sap.m.ComboBox控件开发了一个自定义组合框控件,并带有新的属性listid。 每次设置和更改listid时,我都会重新绑定项目。

 sap.ui.define([
 " sap/m/ComboBox"
 ],函数(组合框){
 "使用严格";
 return ComboBox.extend(" my.library.control.MyComboBox",{

   元数据:{
             属性:{
                 " listid":{type:" string"}
             }
         },

   渲染器:" sap.m.ComboBoxRenderer",

   setListid:函数(sValue){
         this.setProperty(" listid",sValue);

         if(sValue && this._oldListId!== sValue){

         var oTemplate = new sap.ui.core.ListItem({
           键:" {comboxvalues>键}",
           文字:" {comboxvalues>文字}"
         });

         this.bindItems({
         路径:" comboxvalues>/" + sValue,
         template:oTemplate,
         templateShareable:true
         });

        //我们清除selectedKey
         if(this._oldListId && this._oldListId!== sValue){
           this.setSelectedKey("");
         }

        //设置旧的下拉列表ID
         this._oldListId = sValue;
       }
     }

 });

 });  

4/我用自定义组合框定义了第二个组合框,并将listid属性绑定为与第一个组合框的selectedKey属性相同的值

  

因此,每次更改第一个组合框的selectedKey的值时,都会自动重新呈现第二个组合框的项目。

我希望这是您想要的。

问候

面料

一周热门 更多>