mxgraph 如何修改画布中的table数据,如何将table中的数据做成可通过ui修改,然后在画布中实时更新
时间: 2024-02-06 09:04:08 浏览: 201
可以编辑的table
mxGraph 是一个图形库,不提供直接操作表格的功能。但是,您可以在 mxCell 中包含 HTML 标记,以显示表格,并使用 JavaScript 或其他库来处理表格数据。
以下是一个示例,演示如何在 mxGraph 中创建一个包含表格的 mxCell,并将表格中的值设置为 mxCell 的值:
```javascript
// 获取 mxGraph 的实例
var graph = new mxGraph(container);
// 创建一个 mxCell
var parent = graph.getDefaultParent();
var cell = graph.insertVertex(parent, null, '', 0, 0, 80, 30);
// 在 mxCell 上添加一个表格
var table = document.createElement('table');
var tbody = document.createElement('tbody');
for (var i = 0; i < 3; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < 3; j++) {
var td = document.createElement('td');
td.innerHTML = i + ', ' + j;
tr.appendChild(td);
}
tbody.appendChild(tr);
}
table.appendChild(tbody);
graph.setCellStyles(mxConstants.STYLE_LABEL, table.outerHTML, [cell]);
// 获取表格中的单元格
var cells = table.getElementsByTagName('td');
for (var i = 0; i < cells.length; i++) {
var cellValue = cells[i].innerHTML;
cells[i].addEventListener('input', function(evt) {
// 设置 mxCell 的值为表格中的值
var newValue = this.innerHTML;
graph.getModel().setValue(cell, newValue);
});
}
// 设置 mxCell 的值为表格中的第一个单元格的值
graph.getModel().setValue(cell, cells[0].innerHTML);
```
这个示例演示了如何在 mxGraph 中创建一个包含表格的 mxCell,并将表格中的值设置为 mxCell 的值。我们使用 `document.createElement` 方法创建了一个表格,并将其添加到 `table` 变量中。然后,我们使用 `graph.setCellStyles` 方法将表格的 HTML 字符串设置为 mxCell 的标签。在表格中的每个单元格的 `input` 事件处理程序中,我们使用 `graph.getModel().setValue` 方法将表格中的值设置为 mxCell 的值。最后,我们使用 `graph.getModel().setValue` 方法将 mxCell 的值设置为表格中的第一个单元格的值。
阅读全文