Sapui5 如何从sap.ui.table.table中的输入中获取值?
在Sapui5 如何从sap.ui.table.table中的输入中获取值?,sapui5,sap-fiori,Sapui5,Sap Fiori,在sap.ui.table.table中,我在一列中有一个输入字段。它将从后端获得近300条数据记录,并绑定到其他列中 用户在输入字段中手动输入。此外,当他点击submit按钮时,我必须从所有输入中获取所有值作为数组。请给出建议。您可以使用表的数据绑定来实现,因为在这种情况下,调用表控件上的getRows()来访问每行的输入字段将没有帮助;它只返回当前可见的行,您可以访问大约300条记录 以下是解决方案: 在JSONModel中从后端获取所有数据 通过迭代将一个属性(比如inputValue)添
sap.ui.table.table
中,我在一列中有一个输入字段。它将从后端获得近300条数据记录,并绑定到其他列中
用户在输入字段中手动输入。此外,当他点击submit按钮时,我必须从所有输入中获取所有值作为数组。请给出建议。您可以使用表的数据绑定来实现,因为在这种情况下,调用
表
控件上的getRows()
来访问每行的输入
字段将没有帮助;它只返回当前可见的行,您可以访问大约300条记录
以下是解决方案:
JSONModel
中从后端获取所有数据Input
字段的列JSONModel
支持双向绑定,用户在Input
字段中输入的所有值在您的模型中都可用
最后,迭代模型的数据以获得每行的inputValue
上述行动步骤:
步骤1和2:
setModelForTable: function() {
var oModel = sap.ui.model.json.JSONModel( < URLToLoadJSON > );
var length = oModel.getData().results.length;
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
oModel.setProperty(path, "");
}
}
最后,获取数组中所有输入的值
var length = oModel.getData().results.length;
var aInputvalues = []
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
aInputvalues.push(oModel.getProperty(path));
}
var length=oModel.getData().results.length;
var aInputvalues=[]
对于(变量i=0;i
您可以使用表的数据绑定来实现,因为在这种情况下,调用表的控件上的getRows()
来访问每行的输入
字段是没有帮助的;它只返回当前可见的行,您可以访问大约300条记录
以下是解决方案:
在JSONModel
中从后端获取所有数据
通过迭代将一个属性(比如inputValue)添加到模型数据中的每个项
将此模型绑定到表,并使用表模板中的inputValue属性绑定包含Input
字段的列
由于JSONModel
支持双向绑定,用户在Input
字段中输入的所有值在您的模型中都可用
最后,迭代模型的数据以获得每行的inputValue
上述行动步骤:
步骤1和2:
setModelForTable: function() {
var oModel = sap.ui.model.json.JSONModel( < URLToLoadJSON > );
var length = oModel.getData().results.length;
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
oModel.setProperty(path, "");
}
}
最后,获取数组中所有输入的值
var length = oModel.getData().results.length;
var aInputvalues = []
for (var i = 0; i < length; i++) {
var path = "/results/" + i + "/inputValue";
aInputvalues.push(oModel.getProperty(path));
}
var length=oModel.getData().results.length;
var aInputvalues=[]
对于(变量i=0;i
我有一个有点类似的案例,我是按照以下方式做的。如果您真的不需要未更改的记录,则可以使用
有一个变量来存储[]个已更改的记录
将更改附加到输入字段
更改时将更改的记录推送到变量
var source = event.getSource();
source.getModel().getProperty(source.getBindingContext().getPath());
或输入字段的值
event.getSource().getValue();
如果您有一个记录Id,您只需按此Id和输入值即可。
4.在提交时,通过[]迭代,我遇到了一个有点类似的情况,我按照以下方式进行了操作。如果您真的不需要未更改的记录,则可以使用
有一个变量来存储[]个已更改的记录
将更改附加到输入字段
更改时将更改的记录推送到变量
var source = event.getSource();
source.getModel().getProperty(source.getBindingContext().getPath());
或输入字段的值
event.getSource().getValue();
如果您有一个记录Id,您只需按此Id和输入值即可。
4.在提交时,请通过[]Hi-dopedev进行迭代,谢谢您的建议。你能详细解释一下吗?请给我点时间!谢谢你,多普捷夫。我用的是sap.m.InputThank,你用的是dopedev。嘿,还有一个建议,当用户单击提交按钮并显示一个消息框,其中一个字段为空时,如何验证所有用户输入是否为非空???请将其作为单独的问题发布,因为在此处回答将超出上述问题的范围,另外,sap.ui.table.table的需求也有点棘手,需要在dopedev中解决,谢谢您的建议。你能详细解释一下吗?请给我点时间!谢谢你,多普捷夫。我用的是sap.m.InputThank,你用的是dopedev。嘿,还有一个建议,当用户单击提交按钮并显示一个消息框,其中一个字段为空时,如何验证所有用户输入是否为非空???请将其作为单独的问题发布,因为在此处回答将超出上述问题的范围,另外,sap.ui.table.table的需求有点棘手,需要解决