采用easyui tree编写简单角色权限代码的方法

首先每个管理员得对应一个角色,而角色可以操作多个栏目,这种情况下我们可以采用tree多选的方式:

在页面上js代码:

$('#Permission').dialog({ title: '栏目权限', closed: false });
$('#rtt').tree({
  url: 'ashx/RoleService.ashx?action=RoleTree&Rid=' + raw.ID,
  method: 'get',
  animate: true,
  checkbox: true
});
$('#Rid').val(raw.ID);

用了一个dialog弹出进行实现ashx中传入一个角色编号

C#代码为:

case "RoleTree":
  string Rid = context.Request.Params["Rid"];
  int Roleid = Convert.ToInt32(Rid);
  List<tree> treelist = getChildren("Angel_Admin_Navigation", "0", Roleid);
  Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter();
  timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd";
  string ResJsonStr = JsonConvert.SerializeObject(treelist, Formatting.Indented, timeConverter);
  context.Response.ContentType = "text/plain";
  context.Response.Clear();
  context.Response.Write(ResJsonStr);

case哪里是一个action操作参数 这个就不用我说了吧!

现在我们来看看输出tree数据怎么写:

//Tree递归调用
public List<tree> getChildren(string tableName, string fid, int RoleId)
{
  DBHelperSql Dbhelper = new DBHelperSql();
  List<tree> list = new List<tree>();
  DataTable dt = Dbhelper.GetDataTable(tableName, " ParentId='" + fid + "' ");
  if (dt.Rows.Count > 0)
  {
    for (int i = 0; i < dt.Rows.Count; i++)
    {
      tree tree = new tree();
      tree.id = dt.Rows[i]["NavName"].ToString();
      tree.text = dt.Rows[i]["TitleName"].ToString();
      if(OperateBll.IsRoleoperateDataExist(dt.Rows[i]["NavName"].ToString(),RoleId)){
      tree.@checked =true;
      }
      tree.children = getChildren(tableName, dt.Rows[i]["id"].ToString(),RoleId);
      list.Add(tree);
    }
  }
  else
    list = null;

  return list;
}
//tree属性
public class tree
{
  public string id { get; set; }
  public string text { get; set; }
  public bool @checked { get; set; }
  public List<tree> children { get; set; }
}

一个递归的方法就实现了 看着是不是很简单。上面输出json的部分调用这个方法即可

最终显示页面如图:

有时候easyui用习惯了真的很不错,以上代码希望能帮到需要的同学。

以上就是本文的全部内容,希望大家可以喜欢。

(0)

相关推荐

  • 浅谈EasyUI中编辑treegrid的方法

    主从表,从表是一个treegrid,加载完数据后,点击节点进入编辑状态. 复制代码 代码如下: columns : [ [ {             title : "ID",             field : "id",             hidden : true         }, {             field : "pid",             hidden : true         },  {    

  • jquery easyui中treegrid用法的简单实例

    项目需求如下图,在服务端返回的json数据中,要经过JS处理,添加复选框,并且复选框需响应JS操作.在easyui 的treegrid中,没有找到现成的插件,自己需要修改整理,代码如下 复制代码 代码如下: <table class="easyui-treegrid" style="width:700px;height:250px"  url='control_node_json?group_id=$info[id]&access_node=$_REQ

  • EasyUI中的tree用法介绍

    真的是太忙了,本应该有好多东西可以写,但是没什么闲时间,每次想到写的时候,来点事就又给忘了.10月最后一天了,在忙也得把这篇文章写完,不然又得多一个空白月了. 这是之前带领成员开发一个小模块功能的时候,需要用到弹出窗口加载树状级联单位选择,最后决定用采用jQuery+EasyUI插件进行开发.但是在使用EasyUI中tree的插件时,碰到了不少麻烦.为了提供弹出树的显示速度,就采用异步加载数节点值,首先先加载根节点,然后根据点击的节点展开加载子节点. 往往结果和预期的都不一样,困惑了几天,展开后

  • 采用easyui tree编写简单角色权限代码的方法

    首先每个管理员得对应一个角色,而角色可以操作多个栏目,这种情况下我们可以采用tree多选的方式: 在页面上js代码: $('#Permission').dialog({ title: '栏目权限', closed: false }); $('#rtt').tree({ url: 'ashx/RoleService.ashx?action=RoleTree&Rid=' + raw.ID, method: 'get', animate: true, checkbox: true }); $('#Ri

  • EasyUI Tree树组件无限循环的解决方法

    在学习jquery easyui的tree组件的时候,在url为链接地址的时,发现如果最后一个节点的state为closed时,未节点显示为文件夹,单击会重新加载动态(Url:链接地址)形成无限循环.如: tree.json [{ "id":1, "text":"Folder1", "iconCls":"icon-save", "children":[{ "text"

  • jenkins 配置用户角色权限的实现方法

    jenkins 配置用户角色权限需要安装插件 Role Strategy Plugin 1.安装 Role Strategy Plugin 插件 下载地址:https://updates.jenkins-ci.org/download/plugins/role-strategy/  打开jenkins 系统管理-->管理插件-->高级    点击上传,选择下载的插件安装 安装完后,重启jenkins 2.安装插件后,进入系统设管理-->Configure Global Security

  • EasyUI Tree+Asp.net实现权限树或目录树导航的简单实例

    复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Main.aspx.cs" Inherits="Manage_Main" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR

  • 实例说明asp.net中的简单角色权限控制

    角色表+用户表,其中Hope_T_User(用户)中的User_RoleId关联Hope_T_Role(角色)的Role_Id,表中字段均为简单常见英文,不作详解. 主要思路是使用公共类在其中根据角色得出其越权时的操作,然后后台所有需要验证权限的页面均继承此类,使用相应参数判断角色以做相应操作. 公共类:AdminPermission 复制代码 代码如下: /// <summary> /// AdminPermission角色权限验证类 /// </summary> public

  • JQuery Easyui Tree的oncheck事件实现代码

    用firebug查看其生成html,发现其checkobx是假的,只是一个span,来回的变样式而已,汗 复制代码 代码如下: $(".tree-checkbox", tree).unbind(".tree").bind("click.tree", function() { if ($(this).hasClass("tree-checkbox0")) { $(this).removeClass("tree-chec

  • Android 采用AOP方式封装6.0权限管理的方法

    [一]背景 6.0运行时申请权限已经是一个老生常谈的内容了,最近项目TargetSDKVersion升到23以上,所以我们也需要做权限管理,我想到的需求是这样的: 1.支持单个权限.多个权限申请 2.运行时申请 3.无侵入式申请,无需关注权限申请的逻辑 4.除了Activity.Fragment之外,还需要支持Service中申请 5.对国产手机做兼容处理 第一.二点,Google都有对应的API: 第三点可以通过自定义注解+AOP切面方式来解决.为什么采用AOP方式呢?首先看AOP定义: 面向

  • SpringBoot使用AOP+注解实现简单的权限验证的方法

    SpringAOP的介绍:传送门 demo介绍 主要通过自定义注解,使用SpringAOP的环绕通知拦截请求,判断该方法是否有自定义注解,然后判断该用户是否有该权限.这里做的比较简单,只有两个权限:一个普通用户.一个管理员. 项目搭建 这里是基于SpringBoot的,对于SpringBoot项目的搭建就不说了.在项目中添加AOP的依赖:<!--more---> <!--AOP包--> <dependency> <groupId>org.springfram

  • JavaScript编写简单的计算器

    本文实例讲述了JavaScript编写简单计算器的代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>计算器</title> <style> /*Basic reset*/ *{ margin:0; padding:0; b

  • easyui tree带checkbox实现单选的简单实例

    实例如下: <ul id="regionTree"></ul> $('#regionTree').tree({ cascadeCheck: false, //onlyLeafCheck: true, checkbox: true, data: [{ "id": 1, "text": "My Documents", "children": [{ "id": 11,

随机推荐