在查看加载时自动检查单选按钮的保存值

时间:2018-01-27 14:31:38

标签: javascript sapui5 sapui5-theming

我创建了一个输入表单,我使用文本框和单选按钮输入数据库中的字段,我需要一些编辑模式的帮助,当用户打开表单时,我想在单选按钮组中选择保存的值。我无法做到这一点,请查看我的观点并提出建议。

<RadioButtonGroup columns="5"  id="rb_PC" selected="{ path: 'Item' }">
    <buttons>
     <RadioButton id="rb_itm1" groupName="itm1" text="Item 1"/>
     <RadioButton id="rb_itm2" groupName="itm2" text="Item 2"/>
     <RadioButton id="rb_itm3" groupName="itm3" text="Item 3"/>
     <RadioButton id="rb_itm4" groupName="itm4" text="Item 4"/>
     <RadioButton id="rb_itm5" groupName="itm5" text="Item 5"/>
    </buttons>
</RadioButtonGroup>

2 个答案:

答案 0 :(得分:0)

selected中没有属性RadioButtonGroup

我会尝试以下方法:

  1. 将您的Items集合绑定到RadioButtonGroup buttons聚合
  2. 在每个RadioButton检查选择
  3. 在下面的示例中,我使用了带有ItemsCollection的JSON模型,每个项目都有一个Name和一个Id属性。该模型包含引用所选Item的名为SelectedItemId的属性。使用expression binding检查选择:

    <RadioButtonGroup columns="5" id="rd_PC" buttons="{/ItemsCollection}">
        <buttons>
            <RadioButton text="{Name}" selected="{= ${Id} === ${/SelectedItemId}}"/>
        </buttons>
    </RadioButtonGroup>
    

答案 1 :(得分:0)

这是我能够接近你的榜样的最接近的 http://jsbin.com/metocec/edit?html,js,output

<!DOCTYPE HTML>
<html>

  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta charset="UTF-8">
    <title>MVC</title>
    <script id="sap-ui-bootstrap" type="text/javascript"
            src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
            data-sap-ui-theme="sap_bluecrystal"
            data-sap-ui-libs="sap.m,sap.ui.table"
            data-sap-ui-xx-bindingSyntax="complex">
    </script>

    <script id="oView" type="sapui5/xmlview">
    <mvc:View height="100%" controllerName="myView.Template"
      xmlns="sap.m" 
      xmlns:core="sap.ui.core"
      xmlns:mvc="sap.ui.core.mvc">
      <VBox>
        <RadioButtonGroup columns="5" selectedIndex="{/radio}">
          <RadioButton text="Item 1"/>
          <RadioButton text="Item 2"/>
          <RadioButton text="Item 3"/>
          <RadioButton text="Item 4"/>
          <RadioButton text="Item 5"/>
      </RadioButtonGroup>
      <Input value="{/input}" />
      </VBox>
  </mvc:View>
    </script>

  </head>

  <body class="sapUiBody sapUiSizeCompact" role="application">
    <div id="content"></div>
  </body>

</html>

控制器

sap.ui.define([
  'jquery.sap.global',
  'sap/ui/core/mvc/Controller',
  'sap/ui/model/json/JSONModel'
], function(jQuery, Controller, JSONModel) {
  "use strict";

  var oController = Controller.extend("myView.Template", {
    onInit: function(oEvent) {
      this.getView().setModel(new JSONModel({
        radio: 2, // do attachRequestCompleted to set the index accordingly
        input: 'test'
      }));
    }
  });

  return oController;
});

var oView = sap.ui.xmlview({
  viewContent: jQuery('#oView').html()
});

oView.placeAt('content');