编辑:我更新了我的功能! 我想将JSON数据绑定到我的sap.ui.table但我不知道这是如何工作的
所以这是我的表:
<content>
<t:Table id="transactionUiTable"
columnHeaderVisible="true"
selectionMode="Single"
selectionBehavior="RowSelector"
enableColumnReordering="false"
enableGrouping="false"
showColumnVisibilityMenu="false"
enableSelectAll="false"
enableCustomFilter="false"
enableBusyIndicator="false"
rows="{path: '/'}"
rowSelectionChange="onTableSelectionChange">
<t:toolbar>
<Toolbar id="toolbar">
<Input width="15%" id="transactionId" value="txn_18KlBw2eZvKYlo2CdHGDlpAJ"/>
<Button text="Search Transaction" type="Emphasized" icon="sap-icon://search" press="onTransactionByTransactionId"/>
<Button text="Transactionlist" type="Unstyled" press="onTransactionList"/>
<Button text="Customer Transactionlist" type="Unstyled" press="onCustomerTransactionList"/>
<ToolbarSpacer/>
<Button icon="sap-icon://action-settings" type="Default" />
</Toolbar>
</t:toolbar>
<t:columns>
<t:Column id="id" hAlign="Center" width="10%">
<Label id="labelId" text="Transaction Id"></Label>
<t:template>
<Text text="{orderId}"/>
</t:template>
</t:Column>
<t:Column id="columnDate" hAlign="Center">
<Label id="labelDate" text="Date"></Label>
</t:Column>
<t:Column id="columnAmount" hAlign="Center">
<Label id="labelAmount" text="Amount"></Label>
</t:Column>
<t:Column id="columnCurrency" hAlign="Center">
<Label id="labelCurrency" text="Currency"></Label>
</t:Column>
<t:Column id="columnFee" hAlign="Center">
<Label id="labelFee" text="Fee"></Label>
</t:Column>
<t:Column id="columnNet" hAlign="Center">
<Label id="labelNet" text="Net"></Label>
</t:Column>
<t:Column id="columnType" hAlign="Center">
<Label id="labelType" text="Type"></Label>
</t:Column>
<t:Column id="columnStatus" hAlign="Center">
<Label id="labelStatus" text="Status"></Label>
</t:Column>
</t:columns>
</t:Table>
</content>
通过单击带有“搜索事务”文本的按钮,我想通过GET调用带有transactionId的服务,该服务可以写入输入字段,我已经用值“txn_blablabla”填充了它
所以这是我的功能:
onTransactionByTransactionId : function() {
this.oView = this.getView();
var query = this.oView.byId("transactionId").getValue();
var oJsonModel = new sap.ui.model.json.JSONModel();
oJsonModel.loadData("/retrieveTransacion?transactionId=" + query , {}, false);
var oData = oJsonModel.getProperty("/");
this.oView.setModel(oData);
}
所以在我的变量oData上我得到了我的JSON绑定,但是如何在我的表列上绑定那些JSON数据?
例如,我想将JSON数据量与id为“columnAmount”的列绑定....
答案 0 :(得分:1)
你其实几乎就在那里。您唯一需要做的就是将模型设置为JSONModel而不是原始JSON数据,即:
this.oView.setModel(oData);
- &gt; this.oView.setModel(oJsonModel);
您可能还希望将JSONModel
的初始化和视图的绑定移至init
部分,因为每次按下搜索按钮时都不需要这样做。将它移动到init方法会让你的代码执行得更快,我认为它也会让它更容易理解。
请在此jsbin中找到略微清理和修改的版本(以便它可以连接到公共国家/地区列表服务):http://jsbin.com/laqefak/1/edit?html,output