slickgrid ( nsunleo-slickgrid ) 5 增加子件
slickgrid ( nsunleo-slickgrid ) 5 增加子件
上次把单元格切换的问题解决了,这次要最做的事情就是给slickgrid的treegird增加子件,我们先选中某一条记录,然后通过点击事件,给当前的记录增加一个子。
在做之前,突然之间发现树的展开和收缩不可用了,于是排查了一下,是比较登记的地方之前修改错误了,判断显示隐藏的条件是通过层级来控制的,修正后的结果如下:
var TaskNameFormatter = function (row, cell, value, columnDef, dataContext) {
value = value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
var spacer = "<span style='display:inline-block;height:1px;width:" + (15 * dataContext["indent"]) + "px'></span> ";
var idx = dataView.getIdxById(dataContext.id);
var levelNum = doLevelNum(dataContext["indent"]);
var item = data[idx + 1];
if (item && item.indent > data[idx].indent) {
};
增加子件的逻辑,首先需要定位到选中的记录:
var rows = grid.getSelectedRows();
然后找到treeGrid的增加子件方法,通过查看API,发现有addItem 和 insertItem 两个,addItem是插入到最尾端,不是想要的,而insertItem是插入到给定记录之前的,也不是想要的,但是可以变通一下,既然是插入到之前,那么将当前的值+1,则相当于插入选择值之后了。
var nRow = nItem(data.length + 1, row, rowData.getItem(row).indent + 1);
rowData.insertItem(row + 1, nRow);
树的组成关键的信息是父子,还有显示的层级,父比较容易了,即当前的行记录,而层级为当前层级+1即可,这样就可以动态的增加子件了。
// add new row command
$("#addRow").bind("click", function (e) {
var rows = grid.getSelectedRows();
addRow(rows[0]);
})
// new row
function addRow(row) {
var current = 5;
var newRow = { title: "new Title", duration: "1 day" };
var rowData = grid.getData();
var nRow = nItem(data.length + 1, row, rowData.getItem(row).indent + 1);
rowData.insertItem(row + 1, nRow);
//data.push(nRow);
grid.setData(rowData);
grid.render();
grid.scrollRowIntoView(current, false);
}
function nItem(i, parent, indent) {
var d = {};
d["id"] = "id_" + i;
d["indent"] = indent;
d["parent"] = parent;
d["operator"] = "增加 " + i;
d["f2000"] = "EYA001" + i % 7 + "_" + i;
d["f1000"] = "EYA001" + i % 7;
d["f2136"] = "keep your mind!";
d["qty"] = i % 7;
d["createTime"] = '2021-02-24';
d["mp"] = "M";
d["state"] = i % 2 == 0;
return d;
}

slickgrid ( nsunleo-slickgrid ) 5 增加子件的更多相关文章
- 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时
五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整 ...
- 修复jquery.treeview的增加子节点的方法的bug
1.修复理由 在一个android项目中用到了treeview控件(本来自己通过android的原生api实现了一个http://www.cnblogs.com/Mr-Nobody/p/3527688 ...
- ABAP-增强-MRP运行-根据工厂/父件/子件/供应商拆分采购申请
最近有个业务需要,MRP运行过程中需要根据生产计划订单/子件/供应商对应关系来拆解采购申请. 1.具体实例: a.基础数据 整车物料:NL1G58420151001219 子件:00000000888 ...
- WPF 使用附加属性增加控件属性
使用附加属性增加控件属性,使得这个附加属性在使用的时候没有局限性,可以在任何的控件中使用它来增加所需要的属性,使得控件的属性使用起来非常灵活 一.自定义附加属性 using System; using ...
- 微服务探索之路04篇k8s增加子节点,metrics资源监控,ingress-nginx域名配置及https配置
1 k8s增加子节点 1.1 子节点服务器安装docker,使用脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror A ...
- 通过微信公众号API复制公众号自定义菜单同时增加子菜单方法
主要的原因是再不破坏公众号以前的菜单的基础上增加自定义菜单,主要步骤如下: 1.通过微信提供的微信公众平台接口调试工具获取公众号的所有自定义菜单 网址:https://mp.weixin.qq.com ...
- StackPanel在增加控件的问题
今天遇到这样一个问题,就是我做了一个自定义控件.然后加到StackPanel中, <StackPanel Height="676" HorizontalAlignment=& ...
- android动态增加控件时控制样式的方法
在学习android的动画时,发现所谓的tween动画只是改变绘制效果并不改变原控件的位置时是颇为失望的,虽然3.0之后已经有了property animation,但是由于要兼容老版本的androi ...
- Devexpress gridview cell增加控件
1.根据上图次序,先添加三类控件类型: 2.根据上图次序设置columnEdit 3.点开ColumnEdit , 设置 check 和 uncheck的 value
随机推荐
- MHA 高可用介绍
目录 MHA 介绍 MHA 简介(Master High Availability) MHA 工作原理(转载) MHA 架构 MHA 工具 Manager 节点 Node 节点 MHA 优点 MHA ...
- c++ cin 读入txt的问题
源程序 #include <iostream> using namespace std; struct Stack { int tos; int stackarray[1000]; }; ...
- HDU - 4455 Substrings(非原创)
XXX has an array of length n. XXX wants to know that, for a given w, what is the sum of the distinct ...
- sdut3562-求字典序最小的最短路 按顶点排序后spfa的反例
首先我们可以这么搞...倒序建图,算出源点s附近的点距离终点的距离,然后判断一下,终点是否能跑到源点 能跑到的话呢,我们就判断s周围的点是否在最短路上,然后我们选编号最小的点就好了 代码 #inclu ...
- asp.net 从Excel表导入数据到数据库中
http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...
- TS & ES-Next & playground
TS & ES-Next & playground TS TypeScript: TS Playground - An online editor for exploring Type ...
- The State of JavaScript 2019
The State of JavaScript 2019 https://stateofjs.com/ https://survey.stateofjs.com/ https://2018.state ...
- css & clip-path
css & clip-path https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path https://tongqu.me/ tw ...
- js 生成Excel
https://www.npmjs.com/package/xlsx 安装依赖 npm install xlsx Example import * as XLSX from "xlsx&qu ...
- 10月份上线的NGK有什么不同之处?
近日,有小道消息传出公链项目NGK即将在10月上线的消息.各大社区纷纷开始布局,市场中关于NGK项目的消息也变得更多了起来.仅是社区热度这一点,对比之下就已经优于很多项目,那么是否还有其他优势呢?让我 ...