【问题标题】:SAPUI5 Table Cell Custom Control BindingSAPUI5 表格单元自定义控件绑定
【发布时间】:2018-06-08 12:21:57
【问题描述】:

我想知道是否有人可以阐明我遇到的问题。当我在单元格中使用自定义输入控件时,我似乎无法更新数据模型。使用标准 sap.m.Input 时,可以正确执行数据模型的更新。

这是 Plunker:https://plnkr.co/edit/GxE6F8DbW9DHqWjpfdO0

我已经正确地覆盖了“值”的 getter 以从输入字段中获取数据。在 Chrome 中调试显示未调用此函数,我认为这是未更新数据模型的原因。

getValue: function() {
  var me = this;
  var ef = sap.ui.getCore().byId(me.sId + '-ef');

  return ef.getProperty('value');
}

基本上,有一个两行四列的表格。第一列使用我的自定义输入。第二列有一个自定义按钮,其中包含一个聚合 (additionalParameters),其中包含第一列中使用的绑定数据。第三列使用标准 sap.m.Input,最后第四列再次是自定义按钮,其中“附加参数”聚合绑定到第三列中的数据。当任何一个按钮被按下时,它会触发一个事件,进而更新“示例”输入字段。

因此,当我在第一列中输入内容时,选择制表符并按下相应的“PB1”按钮,只有来自模型的原始数据出现在“样本”输入字段中。如果我在第三列中输入内容,从字段中跳出并按下相应的“PB2”按钮,则“示例”输入字段由新输入的数据正确设置,这意味着数据模型已更新。

编辑 我可以从 Input 获取值没问题。也许我可以澄清一下。单元格 1 中的“MyCustomInput”将“value”绑定到“list>colOne”。单元格 2 中的“MyCustomButton”将聚合“additionalParameters”中第一项的“文本”绑定到相同的“list>colOne”。输入到 MyCustomInput 的任何文本都不会更新模型,因此不会更新“additionalParameters”项。如果我做完全相同的事情,但使用标准输入而不是 MyCustomInput 它可以工作。从单元格 3 中的输入和单元格 4 中的按钮可以看出。

谢谢

【问题讨论】:

    标签: binding sapui5 custom-controls


    【解决方案1】:

    也许您可以提供更多信息。我们这里有一个简单的例子 http://jsbin.com/yukujag/edit?html,js,output 它适用于 getValue 和 setValue

    sap.ui.define(['sap/m/Input', 'sap/m/Button', 'sap/m/VBox'],
                  function(Input, Button, VBox) {
      Input.extend('MyInput', {
        value: 'abc',
        renderer: {},
        getValue: function() {
          return this.value;
        },
        setValue: function(v) {
          this.value = v;
        },
      });
    
      var oInput = new MyInput();
    
      var oBox = new VBox({
        items: [
          oInput,
          new Button({
            text: 'Test',
            press: function() {
              alert(oInput.getValue());
            }
          })
        ]
      })
      oBox.placeAt('content');
    });
    

    谢谢 -D

    【讨论】:

    • 感谢您的回复。不幸的是,不完全是我想要的。我可以直接从 MyCustomInput 获取值没问题,但在我的情况下绑定模型没有更新。我已经在上面编辑了我的问题,希望能澄清一下。
    猜你喜欢
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    相关资源
    最近更新 更多