扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这是JQ的前台代码
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、雅安服务器托管、营销软件、网站建设、赤峰林西网站维护、网站推广。
function zTreeOnDrop(event, treeId, treeNodes, targetNode, moveType) {
var DeptIds = "";
for (var i = 0; i treeNodes.length; i++) {
DeptIds += treeNodes[i].DeptId;
if (i != treeNodes.length - 1) {
DeptIds += "|";
}
}
var params = "DeptIds=" + DeptIds + "TargetId=" + targetNode.DeptId;
$.submit({
url: "%=AppPath.Domain %/Controllers/CorpDeptInfoAction.ashx?__method=drag",
data: params,
success: function(oData) {
var treeObj = $.fn.zTree.getZTreeObj("rightTree");
for (var i = 0; i treeNodes.length; i++) {
treeObj.moveNode(targetNode, treeNodes[i], 'inner');
}
},
error: function(oData) {
$.alert(oData.Message);
}
});
};
function zTreeBeforeDrag(treeId, treeNodes) {
return true;
};
后台代码你自己改下
//移动权限
private string Drag(HttpContext context)
{
string result = AppAction.ERROR;
string message = "";
log.Debug("[Update]: 更新权限表");
try
{
string DeptIds = context.Request.Form["DeptIds"];
string targetId = context.Request.Form["TargetId"];
string[] DeptIdList = DeptIds.Split('|');
IListCorpDeptInfo corpDeptInfoList = new ListCorpDeptInfo();
for (int i = 0; i DeptIdList.Length; i++)
{
CorpDeptInfo param = new CorpDeptInfo();
param.DeptId = DeptIdList[i];
CorpDeptInfo corpDeptInfo = corpDeptInfoService.GetCorpDeptInfoById(param);
corpDeptInfo.ParentId = targetId;
corpDeptInfoList.Add(corpDeptInfo);
}
int sResult = corpDeptInfoService.UpdateCorpDeptInfoListById(corpDeptInfoList);
switch (sResult)
{
case SystemRightService.SUCCESS:
result = AppAction.SUCCESS;
log.Debug("更新成功");
break;
default:
break;
}
}
catch (Exception ex)
{
message = "更新权限表失败";
log.Error("更新失败", ex);
}
Hashtable jsonHash = new Hashtable();
jsonHash.Add(AppAction.RESULT, result);
jsonHash.Add(AppAction.MESSAGE, message);
string jsonString = JsonMapper.ToJson(jsonHash);
return jsonString;
}
一,简介
ligerTree的功能列表:
1,支持本地数据和服务器数据(配置data或者url)
2,支持原生html生成Tree
3,支持动态获取增加/修改/删除节点
4,支持大部分常见的事件
5,支持获取选中行等常见的接口方法
二,第一个例子
引入库文件
遵循LigerUI系列插件的设计原则(插件尽量单独),ligerTree是一个单独的插件,也就是说只需要引入plugins/ligerTree.js和样式css文件就可以使用(当然必须先引入jQuery),在这个例子中,我把tree用到的样式和图片分离了出来,有兴趣的朋友可以下载来看看
script src="lib/jquery/jquery-1.3.2.min.js" type="text/javascript"/script
link href="lib/ligerUI/skins/Aqua/css/ligerui-tree.css" rel="stylesheet" type="text/css" /
script src="lib/ligerUI/js/plugins/ligerTree.js" type="text/javascript"/script
你不必自己做了 jquery有很多插件实现树状分支,只要去jquery网查查插件就有了。可以推荐你一个ztree 国产的,功能十分丰富强大。我项目里也是用的它。
ztree异步加载节点的时候需要提供一个url。
ztree初始化完会向这个url发送一次请求【注意这个时候是不会带参数的】。这个时候你需要返回给它你想要的节点。
ps:我是返回一个根节点给它。
然后在点击此时的节点时候,还是会向这个url发送请求【此时会带配置的参数】,如果你现在的处理方式和初始化之后那样,就还是返回你开始的那些节点给你。
所以,你需要根据不同的动作来处理你的返回值。
async : {
enable : true,
url : _map.url,//异步路径
autoParam : ["id","name" ],//请求携带节点上的属性值
dataFilter : function(treeId, parentNode, childNodes) {
if (!childNodes)return null;
for (var i = 0, l = childNodes.length; i l; i++) {
var _c=childNodes[i];
_c.isParent=_c.parent;
childNodes[i].name = _c.name.replace(/\.n/g, '.');
}
return childNodes;
}
},
//只是提供处理思路 不需要copy
@RequestMapping("/getOrg")
@ResponseBody
public ListObjectTypeBean getOrg(HttpServletRequest request,ObjectTypeBean bean,@RequestParam MapString,String para) {
ListOrgBo list = new ArrayListOrgBo();
if(para.size()1){
OrgBo bo = null;
bo = orgService.getOrgByNo(GlobalValue.ORGROOT);
list.add(bo);
}else{
String id = para.get("id");//根据父节点ID获取子节点
list = orgTreeService.getChildOrgsForTree(id,Constants.DEFAULT_ORG_RELA_TYPE);//orgSpiService.getChildOrgs(id, "");
}
ListObjectTypeBean _list = new ArrayListObjectTypeBean(list.size());
for(OrgBo _b : list){
_list.add(new ObjectTypeBean(_b.getNo(), _b.getParentNo(), _b.getShortName(),!_b.isLeaf()));
}
return _list;
}
你是说数据以树形的方式显示出来吗?如果是的话,我百度空间里有一个例子,你可以去参看一下,希望能帮上你的忙。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流