
const parentList = []function getParent (node) { // 判断当前节点是否有父节点,并且父节点上的data不能是数组 if (nodeparent && !ArrayisArray(nodeparentdata)) { // 将父节点上data的menuid存储在 `parentlist` 里 nodeparentdata instanceof Object && thisparentListpush(nodeparentdataid) // 递归调用 父节点上有父节点 getParent(nodeparent) // 当父节点上data是数组时点击对象为当前tree最高目录 并且parentList必须是0 } else if (thisparentListlength === 0) { // 存储当前节点的id到parentList thisparentListpush(nodedataid) } }
于是我参考着改了一点点,记录一下,写得不好,仅供参考, 见谅~
---------------data中-------------------
------------------methods---------------------
引用**姐的一段话
但是,(又敲黑板!!!)我们给后台传过去了父节点,如果有反显的情况下(如:修改,查看功能),一旦有父节点,子节点又将会全部勾选!!这种情况下又该怎么办呢?
思路如下:
1循环遍历出最深层子节点,存放在一个数组中
2将后台返回的含有父节点的数组和第一步骤遍历的数组做比较
3如果有相同值,将相同值取出来,push到一个新数组中
4利用这个新的重组的数组给Tree组件selected赋值
不知道我有没有正确理解你的需求,你是想从后台加载root节点。
试了很多方法都不行,只能用笨的了,虽然笨,但实现是没有问题。大致思路是从后台获取一个json对象之后。再把json对象中的值设置到一个节点中,再把这个节点通过ExttreeTreePanel
用的最麻烦的方式获取到最终树形图的数据,原理是通过改变属性图真实数据,过程就是利用递归循环查找被点击的dataid与数据中哪个对象id相等来进行判断与递归。包括增删改都是利用这个方法,没找到框架提供的api有关于获取最终数据的参数。。。打印出来的store一直是原始数据。可能功能还不太完善吧,用个框架这个麻烦!
你这种做法是不对的
你需要的是递归 /// <summary>
/// 获得所有被选中的节点
/// </summary>
/// <param name="Nodes">节点集合</param>
private bool GetTargetNode(TreeNodeCollection Nodes)
{
bool success=true;
foreach (TreeNode TN in Nodes)
{
if (TNChecked)
{
//保存数据你想要的数据到数据库
if (保存失败)
{
success=false;
break;
}
}
success=GetTargetNode(TNNodes);
if(!success)
break;
}
return success;
}
调用
if(GetTargetNode(treeView1Nodes))
成功
else
失败
以上就是关于elementUI的el-tree通过id获取数据全部的内容,包括:elementUI的el-tree通过id获取数据、[antd of vue] a-tree组件子节点不完全勾选获取父节点的值、EXT4.2的tree.panel里面的数据怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)