如何在SAPUI5中将控件重置为其初始值?

时间:2018-09-21 08:49:41

标签: javascript sapui5

我有一个使用OpenUi5的带有很多控件(组合框,TextAreas,RadioButtons)的表单。我在C ++中提供了服务器端控件的值。我想要的是有一个重置按钮,该按钮将清除用户的选择,并使用默认选项将控件还原为默认状态。到现在为止,我已经能够将表单和控件作为这样的JS对象:

this.byId("MainForm").getModel();

到目前为止,我唯一能做的就是完全清除所有这样的控件:

this.byId("MainForm").getModel().setData(null);

例如,我有一个ComboBox,而我模型的默认值是第二选择。如何保留该值并将其重新设置为控件? 谢谢

2 个答案:

答案 0 :(得分:2)

使用相应控件的apisap.m.ComboBox采用方法setSelectedKey(sKey)sap.m.TextArea采用方法setValue(sValue)sap.m.RadioButton采用方法setSelected(bSelected)

press事件绑定到您的重置按钮。在您的新闻事件中获取表单的控件。然后使用各自的方法将表单的控件重置为其初始状态。

<!-- in your e.g. xml view -->
<Button type="Reject" text="Reset" press="onPressResetButton"></Button>

// in your js controller
onPressResetButton: function() {
  ...
  var oComboBox = this.byId("your-combo-box-id");
  oComboBox.setSelectedKey("your-initial-item-key");
  ...
}

从后端获取表单控件的初始值,或将其保留在前端的本地模型中。

答案 1 :(得分:1)

我认为实现此目标的最佳方法是拥有两个模型。一种是您的odata模型,该模型从服务器获取数据,第二种是具有本地json模型。

  1. 从odata获取数据并将其分配给本地模型。
  2. 将本地模型绑定到表单
  3. 没关系,用户更改表单上的数据。本地模型将受到影响。
  4. 当用户按下重置按钮时。再次将您的odata模型数据分配给本地模型,这样默认值将再次被绑定。

希望这种方法有所帮助。