带有数据绑定的标准图块

时间:2015-09-19 12:05:42

标签: json data-binding sapui5 tiles

我是SAPUI5开发的新手,并尝试在tile容器中创建一个带有标准tile的页面。我创建了一个data.json文件,其中包含以下信息:

{
  "TileCollection" : [
    {
      "icon" : "edit",
      "type" : "Monitor",
      "press":  "onEditClick",
      "title" : "Global MasterData Characteristics Maintenance Tool"
    }, 
    {
      "icon" : "activity-assigned-to-goal",
      "type" : "Monitor",
      "press":  "onAssignClick",
      "title" : "Global MasterData Characteristics Assignment Tool"
    },     
    {
      "icon" : "map",
      "type" : "Monitor",
      "press":  "onMappingClick",      
      "title" : "Global MasterData Characteristics Mapping Tool"
    }    
  ]
}

在我的xml视图中我然后使用下面的代码,当我将以下动态条目从{press}替换为例如onEditClick然后事件有效,但是当我点击磁贴时,动态内容没有任何反应。我希望任何人都可以帮助朝着正确的方向前进?

<TileContainer id="container" tileDelete="handleTileDelete" tiles="{/TileCollection}">
                <StandardTile 
                    icon = "sap-icon://{icon}"      
                    type = "Monitor"
                    press = "{press}"
                    title = "{title}" />
            </TileContainer>

为了确保,图标和标题在运行时正确加载,因此加载和使用JSON文件,似乎只应用了press属性。

亲切的问候, Nico van der Linden

2 个答案:

答案 0 :(得分:0)

嗨Nico van der Linden,

你需要更改新闻事件的绑定。

代码应该是这样的:

dTable.ajax.url('newurl.php').load();

希望这有帮助。

答案 1 :(得分:0)

我终于解决了它:-)确实你似乎无法绑定新闻事件本身。所以我现在所做的是在json文件中创建一个参数id-tile,它具有作为应用程序一部分的视图的值。所以JSON文件看起来像:

while ( $row = mysqli_fetch_assoc( $result ) ) {
    $row["item"] = utf8_encode( $row["item"] );// added this line
    $notes[] = $row;
}

然后在视图中我使用标准图块如下:

{
  "TileCollection" : [
    {
      "id-tile": "maintenance",
      "icon" : "edit",
      "type" : "Monitor",
      "info" : "Central",
      "title" : "Global MDM"
    }, 
    {
      "id-tile": "assignment",
      "icon" : "activity-assigned-to-goal",
      "type" : "Monitor",
      "info" : "Local",
      "title" : "Product and Customer Mapping "
    }
}  

因此,这意味着页面上的每个磁贴都会在控制器文件中启动相同的事件。所以最后在控制器中我使用bindingContext中的“id-tile”来查看单击了哪个tile,然后将参数的值分配给“navTo”命令来进行实际路由。

> <StandardTile
>               icon="sap-icon://{tiles>icon}"
>               type="{tiles>type}"
>               number="{tiles>number}"
>               numberUnit="{tiles>numberUnit}"
>               press="handleTilepress"
>               title="{tiles>title}"
>               info="{tiles>info}"
>               infoState="{tiles>infoState}" />

谢谢大家的回复!我是SAPUI5开发的新手,我不知道这是否是最好的方法,但它似乎对我来说很好:-)

此致 尼科