关于JQuery-Ztree小问题

事实胜于雄辩 2017-08-29 04:37:06
今天闲来无事,就根据Ztree这个树插件写了个小例子,其中遇见一个小问题 卡主了


页面初始化 “世界根节点包含中国” 在中国下添加子节点 这是可以的,比如名字叫newNode1 ,当再次在newNode1下添加节点,这取newNode1节点作为父节点的ID是 null,没有取到,当我刷新页面的时候 就取到了, 这是因为添加完后 没刷新页面吗?
代码:

$(function () {

$.ajax({
type: "Get",
url: "@Url.Action("ztree","ZtreeTest")",
//async: false,
success: function (data) {
$.fn.zTree.init($("#treeDemo"), setting, data);
}
});
})
var setting = {
data: {
simpleData: {
enable: true,
}
},
callback: {
/*节点获取与展开回调*/
beforeExpand: beforeExpand,
onAsyncSuccess: onAsyncSuccess,
onAsyncError: onAsyncError,

onClick: zTreeOnClick,
beforeEditName: beforeEditName,
beforeRemove: beforeRemove,
beforeRename: beforeRename,
onRemove: onRemove,
onRename: onRename
},
edit: {
enable: true,
editNameSelectAll: true
},
view: {
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom,
selectedMulti: false
}

};


function addHoverDom(treeId, treeNode) {
var sObj = $("#" + treeNode.tId + "_span");
if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
+ "' title='add node' onfocus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_" + treeNode.tId);
if (btn) btn.bind("click", function () {
var zTree = $.fn.zTree.getZTreeObj(treeID);
zTree.addNodes(treeNode, {
pId: treeNode.id, name: "new node" + newCount
});
$.ajax({
url: '/ZtreeTest/ZtreeAdd', //url action是方法的名称
data: {_pid: treeNode.id, _name: "new node" + newCount },
type: 'POST',
success: function (data) {
//异常完成后,刷新父节点及下面所有子节点
//var node = zTree.getSelectedNodes();
//var node1 = node[0];
//node1.isParent = true;//把属性变成true,让这个节点被认为是根节点
zTree.reAsyncChildNodes(treeNode, "refresh");
}
});
newCount++;
return false;
});
};

public string ZtreeAdd( string _pid, string _name)
{
int _Suess = 0;
//// Zid=自己的ID PID=父ID
menutree men = new menutree { Zid = Convert.ToString(Guid.NewGuid()), Pid = _pid, Name = _name, LinkUrl = null };
using (Context db = new Context())
{
db.Menutree.Add(men);
_Suess = db.SaveChanges();
}
}
...全文
210 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2017-09-01
  • 打赏
  • 举报
回复
要等到添加后刷新节点,不要直接添加节点,因为你添加的时候没有ID。 treeNode.isParent = true; zTree.reAsyncChildNodes(treeNode, "refresh");

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧