Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

调用unCheckNodes()取消选中之后,再调用setChecked(arr),这有时候选中会变成两次的叠加 #95

Open
925934787 opened this issue Mar 20, 2020 · 2 comments

Comments

@925934787
Copy link

el.setChecked(arr1);
el.unCheckNodes();
el.setChecked(arr2);
简化之后就是这个意思,最后选中的节点变成了arr1+arr2的节点总和。

还有为了异步加载子节点之后选中子节点,
, load: function (oldNode, callback) {
$.ajax({
url: "/UserManager/GetDeptTree?pid=" + oldNode.id,
type: 'get',
success: function (result) {
var newNode = result.data;
setTimeout(function () {
callback(newNode);
el.setChecked(($("#deptIds").val() || "").split(","));
}, 100);
}
});
加了一个setChecked方法,结果选中的新节点,在展开子节点,也就是load方法的时候就变成未选中了
稍微看了一下源码,主要就是config里面的defaultCheckedKeys导致的。后端不太懂前端的东西,麻烦有空看看是不是有bug

@hsiangleev
Copy link
Owner

setChecked方法有两个参数,可以把第二个参数设置为true,

el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项

@925934787
Copy link
Author

setChecked方法有两个参数,可以把第二个参数设置为true,

el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项
我该用true了,然后自己保存页面上需要选中的节点,用选中事件更新,每次覆盖选中解决了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants