如何允许在SAPUI5表中编辑单元格

时间:2014-06-05 16:17:21

标签: sapui5

您能否告诉我如何在SAPUI5表中编辑单元格?我正在使用JSON模型。

4 个答案:

答案 0 :(得分:3)

在SDK Table.html中查看这些示例,两个示例都显示了如何设置json模型,将json模型设置为表控件的数据源,如何将json的行绑定到行的表,以及如何将值绑定到单元格,一旦您更改单元格值,新值将反映在模型中

var employeeData = [
  {lastName: "Dente", name: "Al"},
  {lastName: "Friese", name: "Andy"},
  {lastName: "Mann", name: "Anita"},
  {lastName: "Schutt", name: "Doris}
 ];

//create the JSON model and set your data
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({ Employees: employeeData });  

//create table
var oTable = new sap.ui.table.Table();

//add a column for lastname and bind the value to an editable textview
oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Last Name"}),
template: new sap.ui.commons.TextView().bindProperty("text", "lastName"),
 });

//add a column for name and bind the value to an editable textview
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "First Name"}),
template: new sap.ui.commons.TextField().bindProperty("value", "name"),
}));

oTable.setModel(oModel);
oTable.bindRows("/Employees);

答案 1 :(得分:1)

首先,您的表格模板对象必须是可编辑的。对于文本字段,请使用setEditable(true)bindProperty('editable',true)或直接使用construtor new TextField({editalbe:true})

如果可编辑,请确保已在模型中启用双向绑定。对于JSON模型,这是我认为的默认值。还要确保没有涉及格式化程序,因为这会破坏双向绑定。

如果UI上的更改转移到模型,您可以检入调试器。一般来说这很好用,从这一点来看,由你决定如何处理模型(将它发送给某些oData保存服务)。

答案 2 :(得分:0)

我遇到了同样的问题,一个表在值为零时必须是可编辑的,而在大于零时是不可编辑的。

Value1是我的dinamic值。 Value2为零

<Input type="Number" editable="{parts:[{path : 'Value1'}, {path : 'Value2'}], formatter:'sap.ui.app.model.formatter.CantEditable'}"/>

在格式化程序中,我定义了一个名为CantEditable的函数。

jQuery.sap.declare("sap.ui.app.model.formatter");
 sap.ui.app.model.formatter = 
 {
 function1: (Value1, Value2)
 {
 //If value 1 > Value 2 return editable
 if (Value1>Value2)
 {
 return false;
 }
 else
 {
 return true;
 }
 };

由于它绑定到这两个变量的值。每当我的值改变时,可编辑的函数将检查它是否符合函数的requeriments。然后它将更改可编辑属性的值。

答案 3 :(得分:0)

我的sap.m.Table演示在这里: http://plnkr.co/edit/qifky6plPEzFtlpyV2vb?p=preview

我正在使用data-sap-ui-theme="sap_belize",您可以将其更改为sap_bluecrystal

基本思路是使用editable的{​​{1}}属性和sap.m.Input的{​​{1}}属性。

我打开了一个ui5问题来讨论这个问题:https://github.com/SAP/openui5/issues/1646