jQuery MiniUI
标题:
grid.addRow(row,-1)的问题
[打印本页]
作者:
zidieq
时间:
2023-7-2 22:03:03
标题:
grid.addRow(row,-1)的问题
首先说明:该方法在3.8.1版本中没有发现任何问题。本文所描述的问题为3.11版本出现的
问题描述:
1. 初始化一个空的grid,就是不立即使用url方式或setData方式对grid加载数据。
然后页面上给一个按钮,让用户点击按钮后调用
grid.addRow(row,-1);
复制代码
在表格中添加一行,此时会发现页面中显示的表格仍然是空的,但是在console中调用grid.getData()方法后却可以正常获得刚添加的数据。
2. 如果使用其他方式加载了数据之后,比如url或在初始化grid后立即setData,再使用grid.addRow(row,-1)时又能正常显示了。
如下代码为演示方便,使用setTimeout方式将grid.addRow(row,-1)添加到宏任务里面执行,也是会重现这个问题。如没有重现可改为按钮触发的方式
<!DOCTYPE html>
<html>
<head>
<script src='scripts/boot.js'></script>
</head>
<body style="height: 100%;">
<div class="mini-panel" style="height: 100%;width: 100%;">
<div id="datagrid1" class="mini-datagrid" style="height: 100%;"></div>
</div>
<script>
mini.parse();
var grid = mini.get("datagrid1");
grid.set({
columns: [
{ field: 'name', name: 'name', header: '姓名' },
{ field: 'age', name: 'age', header: '年龄' }
]
})
//可能会出现问题:页面不显示,但是grid.getData()能得到添加的数据,需要调用grid.refresh()方法刷新后才会显示到页面上。且console里面也没有报错信息
setTimeout(() => {
let row1 = { name: '王五', age: 21 }
grid.addRow(row1, -1);
let row2 = { name: '赵六', age: 22 }
grid.addRow(row2, -1);
}, 1)
</script>
</body>
</html>
复制代码
作者:
felt
时间:
2023-7-12 15:14:29
本帖最后由 felt 于 2023-7-13 09:03 编辑
addRow(row,index)index是从0开始的数字,表示第几行的位置插入
欢迎光临 jQuery MiniUI (http://miniui.com/discuss/)
Powered by Discuz! X2