jstree 使用
1,角色权限

2.
<link href="../Scripts/jsTree/themes/default/style.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/jsTree/jquery-1.6.min.js" type="text/javascript"></script>
<script src="../Scripts/jsTree/jquery.jstree.js" type="text/javascript"></script>
<script type="text/javascript">
var selectRole;//当前点选的角色
$(function () {
$("#roleTree").jstree({
"core" : { "initially_open" : [ "topic_root" ] },
"json_data": { "data": [<%=RoleData%>] },
"themes": { "theme": "default", "dots": false, "icons": true },
"plugins": ["themes", "json_data", "ui"]
}).
bind("loaded.jstree", function(e,data){ data.inst.open_all(-1); }).
bind("select_node.jstree", function(e,data){
$("#lblRole").text("");
if(data.rslt.obj.attr("role")){
$("#lblRole").html("角色["+data.rslt.obj.text()+"]")//显示
if(data.rslt.obj.attr("id")==selectRole)return;//重复点击自身
$("#moduleTree").jstree("uncheck_all");//清空
selectRole=data.rslt.obj.attr("id");//选中节点的ID
var Ids= RoleModuleMgr.GetSelectNodes(selectRole).value;
if(Ids) setCheckedNode(Ids);
}
})
});
$(function(){
$("#moduleTree").jstree({
"json_data": { "data": [<%=ModuleData%>] },
"themes": { "theme": "default", "dots": false,"icons":false },
"plugins": ["themes", "json_data", "ui","checkbox"]
}).bind("loaded.jstree",function(e,data){ data.inst.open_all(-1);})
})
// set checked node
function setCheckedNode(ids){
if(ids!=""){
var t=[];
var tempCheckStr=ids.split(',');
$(tempCheckStr).each(function(i,item){
t.push("#"+item);
})
$("#moduleTree").jstree("check_node",t.join(','));
}
}
// get checked node and save
function SaveCheckedNode(){
//非角色不允许保存
if( $("#lblRole").text()=="") return;
var ids = [];
$("#moduleTree").jstree("get_checked",null,true).each(function(i,n){
ids.push(n.id);
});
var rtv=ids.join(',');
if(selectRole) {
var sc= RoleModuleMgr.SaveRoleModule(selectRole,rtv).value;//save rolemoduleconfig
if(sc)
$("#lblMsg").show().slideUp(3000);
}
}
</script>
#region 权限 构造json 并返回
List<ModuleInfo> lstModule = ModuleInfoBLL.ModuleInfoCmd.GetModuleInfoList(null);
private string LoadModule(string code)
{
List<ModuleInfo> rst = (from m in lstModule where string.IsNullOrEmpty(code) ? (m.MCode == "001") : (m.MCode.StartsWith(code) && m.MCode.Length == code.Length + 3) select m).ToList<ModuleInfo>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < rst.Count; i++)
{
sb.Append("{\"data\":\"" + rst[i].MName + "\",\"attr\":{\"id\":\"" + rst[i].Guid + "\"}");
string t = this.LoadModule(string.Format("{0}00{1}", code, i + 1));
if (!string.IsNullOrEmpty(t))
sb.AppendFormat(",\"children\":[{0}]", t);
if (i + 1 == rst.Count)
sb.Append("}");
else
sb.Append("},");
}
return sb.ToString();
}
#endregion

浙公网安备 33010602011771号