2014-10-07 38 views
1

如何将InPlaceEdit控件分配给通过使用RowRepeater进行数据绑定动态创建的文件的TextField?将InPlaceEdit动态分配给由RowRepeater创建的TextField

基本上,我有这样的事情:

someRowRepeater.bindRows("/path/to/an/array", new sap.ui.commons.TextField({value: "{value}"}); 

数组是这样的:

[{text: "some first value"}, {text: "some second value"}, ... ] 

我已经尝试过的ID添加到每个文本字段,这样我就可以添加InPlaceEdits使用.byID()onAfterRendering方法中,通过将数组修改为[{text: "some first value", id: 0}, ...] d的TextField的构造函数为...TextField({text: "{value}", id: "{value}" + "{id}"});,但后来我得到的错误消息是"{value}{id}" is not a valid ID.

有什么建议吗?

回答

1

这里有一个工作示例:

<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> 

     <script src="resources/sap-ui-core.js" 
       id="sap-ui-bootstrap" 
       data-sap-ui-libs="sap.ui.commons,sap.ui.layout,sap.ui.ux3,sap.ui.table,sap.m" 
       data-sap-ui-theme="sap_goldreflection"> 
     </script> 

     <script> 
      var data = {rows: [{text: "some first value"}, {text: "some second value"}]}; 
      var oModel = new sap.ui.model.json.JSONModel(data); 

      var oTable = new sap.ui.table.Table({ 
       title: "Table column and data binding", 
       showNoData : true, 
       columnHeaderHeight : 10, 
      }); 
      oTable.setModel(oModel); 

      oTable.addColumn(new sap.ui.table.Column({ 
       label: "My Column", 
       template: new sap.ui.commons.InPlaceEdit("IPE1",{ 
        content: new sap.ui.commons.TextField({value: "{text}"}) 
       }), 
      })); 

      oTable.bindRows("/rows"); 

      oTable.placeAt("content"); 
     </script> 

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

希望这有助于。

问候。

相关问题