SAP UI5-无法从表中删除所选行
SAP UI5 - Cannot delete selected row from table
我有一个视图,其中有一个具有单选模式的表,工具栏中有一个删除所选行的按钮。
不过当我按下按钮时,它会删除所有的行。
我的代码:
查看文件:
<template data-controller-name="myapplication.myview2">
<div data-sap-ui-type="sap.ui.table.Table" id="tb1" data-width="100%" data-title="Person Table"></div>
</template>
控制器文件:
onInit: function() {
try {
var oTab = [
// the table content
];
var oToolbar = new sap.ui.commons.Toolbar();
oToolbar.addItem(new sap.ui.commons.Button({text: "Delete selected row",
press: function() {
try {
var newTab = this.getParent().getParent();
var index = newTab.getSelectedIndex();
if (index == -1)
alert("No row selected");
else {
var currModel = newTab.getModel();
var selectedRow = newTab.getRows()[index];
newTab.removeRow(selectedRow);
currModel.setData({table: newTab});
newTab.bindRows("/table");
}
} catch (err) {
txt = "There was an error on this page.'n'n";
txt += "Error description: " + err.message + "'n'n";
txt += "Click OK to continue.'n'n";
alert(txt);
}
}}));
this.byId("tb1").setToolbar(oToolbar);
this.byId("tb1").setVisibleRowCount(5);
this.byId("tb1").setNavigationMode(sap.ui.table.NavigationMode.Paginator);
// Columns definition should be HERE
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({table: oTab});
this.byId("tb1").setModel(oModel);
this.byId("tb1").bindRows("/table");
} catch (err) {
txt = "There was an error on this page.'n'n";
txt += "Error description: " + err.message + "'n'n";
txt += "Click OK to continue.'n'n";
alert(txt);
}
},
// More functions....
有什么想法吗?
您需要从模型中移除行,而不是直接从表中移除。
这里有一个关于如何做到这一点的示例。
http://jsbin.com/yewula/1/edit
就像许多人建议的那样,我们应该把它从模型中删除。由于表已绑定到模型,因此表将相应地刷新。
-D
在删除按钮的按下功能中,获取有关表格的更多详细信息:
var tableIndex = newTab.getSelectedIndex();
var context = newTab.getContextByIndex(tableIndex);
var path = context.getPath();
在变量路径中,您将找到与表行索引相对应的数据索引。使用此数据索引可以从模型中删除该行。
currModel.oData.table.splice(data_index, 1);
之后,所需要的只是刷新模型,以向控件通知更改后的数据。而且,对于用户来说,如果表中的选择也被重置,那可能也很好。
currModel.refresh();
newTab.setSelectedIndex(-1);
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 在不知道深度或父属性的情况下从对象中删除属性
- SAP UI5-无法从表中删除所选行