SAPUI5表格单元自定义控件绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAPUI5表格单元自定义控件绑定相关的知识,希望对你有一定的参考价值。

我想知道是否有人可以解释我遇到的问题。当我在单元格中使用自定义输入控件时,我似乎无法更新数据模型。使用标准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,最后第四列再次是一个自定义按钮,其中'additionalParameters'聚合绑定到第三列中的数据。当按下任何按钮时,它会触发一个事件,该事件又会更新“Sample”输入字段。

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

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

谢谢

答案

可能是您可以提供更多信息。我们在这里有一个简单的例子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

以上是关于SAPUI5表格单元自定义控件绑定的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 - 单元测试绑定到嵌套的自定义表单控件

SAPUI5 将下拉框的值绑定到另一个控件的属性

如何在ios的表格视图中绑定数组数据?

删除按钮出现时自定义表格视图单元格中缺少 UISlider 宽度的动画

在自定义视图单元中创建可绑定事件处理程序

自定义控件:DataGridView 单元格合并和二维表头