grid 手動刪除行
gird 点击选中行,然后移除该行(不使用delete键),移除后,自动选中该行的下一行数据。您好,问题已确认,这是您当前使用版本的bug,请下载最新版本的依赖包,升级产品即可解决。参考附件demo。最新版本下载地址:
https://www.grapecity.com/wijmo/download
(输入邮箱地址,可以收到下载地址)
你好,删除行可以参考这篇示例:
https://www.grapecity.com/wijmo/demos/Grid/Editing/InlineEditing/purejs
更改选中行可以参考这篇示例:
https://www.grapecity.com/wijmo/demos/Grid/Selection/Overview/purejs 表格有添加selection-changed 事件,發現移除當前選中的行,匯自動觸發selection-changed 事件
1.如果移除表格第一行,selection-changed 會被觸發表格行數的次數,並且表格自動選擇最後一樣數據。
2.如果移除中間或者最後一行,selection-changed 事件會被觸發一次
我所要的效果是,移除該行,自動選擇該行的下一行數據,觸發一次selection-changed 事件。
嘗試做法:
var view = grid.collectionView;//獲得當前視圖
view.remove(view.currentItem);//移除當前數據(這裡會自動觸發selection-changed 事件,並且觸發多次!)
grid.selection = new wijmo.grid.CellRange(index, index, index, index); //選中行
问题已经收到,预计最晚明天给您回复验证结果 您好,选中整行需要设置选中模式为Row,如果执行多次选择可能会导致多次事件的触发,不过从您提供的代码里没发现这个问题。我按照您的逻辑改了一版代码,参考:
import 'bootstrap.css';
import '@grapecity/wijmo.styles/wijmo.css';
import './styles.css';
import * as wjGrid from '@grapecity/wijmo.grid';
import * as wjCore from '@grapecity/wijmo';
import * as wjInput from '@grapecity/wijmo.input';
//
document.readyState === 'complete' ? init() : window.onload = init;
//
function init() {
//
// create some random data
var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','), data = [];
for (var i = 0; i < countries.length; i++) {
data.push({
country: countries,
downloads: Math.round(Math.random() * 20000),
sales: Math.random() * 10000,
expenses: Math.random() * 5000
});
}
//
// show data in a grid
var currSel = document.getElementById('currSel');
var theGrid = new wjGrid.FlexGrid('#theGrid', {
alternatingRowStep: 0,
itemsSource: data,
selectionChanged: function (s, e) {
console.log("查看控制台,selectionChanged被触发了多少次?");
currSel.textContent = wjCore.format('({row},{col})-({row2},{col2})', theGrid.selection);
}
});
theGrid.onSelectionChanged(null); // initialize selection display
//
// pick selectionMode
var selectionMode = new wjInput.ComboBox('#selectionMode', {
itemsSource: 'None,Cell,CellRange,Row,RowRange,ListBox'.split(','),
text: 'CellRange',
textChanged: function () {
theGrid.selectionMode = wjCore.asEnum(selectionMode.selectedIndex, wjGrid.SelectionMode);
}
});
//
// select first four cells in the grid
document.getElementById('btnSelect').addEventListener('click', function () {
selectionMode.text = 'Row'; // 设置选中行规则
var view = theGrid.collectionView;//獲得當前視圖
view.remove(view.currentItem);//移除當前數據(這裡會自動觸發selection-changed 事件,並且觸發多次!)
theGrid.selection = new wjGrid.CellRange(0, 0); //選中行
});
//
// select rows 0, 2, and 4
document.getElementById('btnListSelect').addEventListener('click', function () {
selectionMode.text = 'ListBox';
theGrid.select(0, 0); // regular selection still works in listbox mode
.forEach(function (index) {
theGrid.rows.isSelected = true;
});
});
//
}
Demo地址:
https://www.grapecity.com/wijmo/demos/Grid/Selection/Overview/purejs 本帖最后由 醉汀雨笙 于 2021-1-5 16:52 编辑
在你们的测试中,确实是不会被多次触发,但我自己写了一个简单的demo ,却会被多次触发,请查看一下被多次触发的原因。 这个是自己写的demo ,请帮忙查看一下问题所在。
已升級為最新版本,問題已解決!請結帖! 感谢反馈,已结帖~
页:
[1]