今天闲来无事,就根据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();
}
}