【问题标题】:Manipulate icon properties for the last row of table操作表格最后一行的图标属性
【发布时间】:2020-05-18 11:28:40
【问题描述】:

在我的 XML 视图中:

<Table id="testtable" xmlns="sap.ui.table"
  rows="{/testdata}"
  alternateRowColors="true">
  <columns>
    <Column hAlign="Center" label="Col1">
      <template>
        <m:Text text="{dataX}" wrapping="false" />
      </template>
    </Column>
    <Column hAlign="Center" label="Col2">
      <template>
        <m:Text text="{dataY}" wrapping="false" />
      </template>
    </Column>
    <Column label="Col3">
      <template>
        <m:HBox>
<core:Icon src="sap-icon://show" color="{ parts : [ 'test'], formatter: '.setIconColour'}" />
<core:Icon src="sap-icon://edit" color="{ parts : [ 'test' ], formatter: '.setIconColour'}" />
<core:Icon src="sap-icon://print" color="{ parts : [ 'test' ], formatter: '.setIconColour'}" />
        </m:HBox>
      </template>
    </Column>
  </columns>
</Table>

在控制器中(格式化函数为as):

setIconColour: function (value) {
 if (value === 1) {
    return "#007bff";
  } else if (value === 2) {
    return "Positive";
  } else if (value === 3) {
    return "Negative";
  } 
}

样本数据如下:

{"testdata": [
    { "dataX": 1, "dataY": "testdata", "test": 0},
    { "dataX": 2, "dataY": "testdata", "test": 2},
    { "dataX": 3, "dataY": "testdata", "test": 3},
    { "dataX": 4, "dataY": "testdata", "test": 1}
]}

这会根据test 值更改图标属性的颜色,之后我可能知道如何更改仅最后一行图标的颜色或(仅行)如果仅存在一行(其余都具有相同的属性)格式化函数)

我正在尝试这样做:

      var tabItems = this.byId("testtable").getRows(); 

      var cells = tabItems[testdata.length-1].getCells(); // get last row cells

      cells[8].mAggregations.items[0].setColor(
      "#000000");  // at this path i have all 3 icons and trying to set color here (items[0],items[1],items[2] --> 3 icons)

但是这种方法在页面刷新之前无法按预期工作,会产生奇怪的结果,希望有更好的方法,非常感谢 TIA 的任何帮助或指导链接

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    也许您可以为您的 JSON 添加索引,然后您可以将 JSON 的索引和长度提供给您的格式化程序。

    像这样的JSON:

    {"testdata": [
        { index: 1, "dataX": 1, "dataY": "testdata", "test": 0},
        { index: 2, "dataX": 2, "dataY": "testdata", "test": 2},
        { index: 3, "dataX": 3, "dataY": "testdata", "test": 3},
        { index: 4, "dataX": 4, "dataY": "testdata", "test": 1}
    ]}
    

    格式化程序:

    setIconColour: function (value, index, length) {
     // 
    }
    

    【讨论】:

    • 没有。您可以将其添加到 JSON 或其他内容中。
    • 谢谢老哥,终于找到解决办法了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多