setSelectedButton& setSelectedKey用于分段按钮

时间:2016-09-02 09:36:43

标签: sapui5

嘿,伙计们不确定这是一个错误还是我做错了什么,或者我正在使用的CSS样式表正在犯这个错误,但我正在努力解决这个问题。

我在循环中有下面的代码,因为我把它放在一个循环中它不再起作用设置所选按钮我有一个搜索,有些人说尝试设置选择键,我也试过这个,没有运气。现在我已经将它们都放入并且它将所选值设置为两个按钮。我将向您展示我的意思截图。任何关于修复它的想法都会很棒。

        for(var i = 0; i < results.length; i++) {
        //Create buttons dynamically
        var segmentItemYes = new sap.m.SegmentedButtonItem({text :"Yes", press: [this.onSEYesPress, this]});
        var segmentItemNo = new sap.m.SegmentedButtonItem({text :"No",  press: [this.onSENoPress, this]});
        var segmentedButton = new sap.m.SegmentedButton({items : [segmentItemYes, segmentItemNo]});

        //TODO:Doesn't work currently - How do we set default state?
        segmentedButton.setSelectedButton(segmentItemNo);
        segmentedButton.setSelectedKey(segmentItemNo);

下面是图像顶部是我得到的(我点击否以显示究竟发生了什么。底部是删除了setSelectedKey但仍设置为no。任何想法?这是在一个JS控制器,如果这有所不同,它将被放入一个xml片段。 enter image description here

1 个答案:

答案 0 :(得分:1)

通过将所选键绑定到模型,我按照以下方式工作:

  var segmentItemYes = new sap.m.SegmentedButtonItem( {
      text: "Yes",
      key: "foo"
    });
    var segmentItemNo = new sap.m.SegmentedButtonItem( {
      text: "No",
      key: "bar"
    });
     var segmentedButton = new sap.m.SegmentedButton( {
      items: [segmentItemYes, segmentItemNo],
      selectedKey: {
        path: "test>/key"
      }
    });

var model = new sap.ui.model.json.JSONModel({
  key: "bar"
    });
sap.ui.getCore().setModel(model, "test");