天天看點

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

背景:

         最近看到不少關于權限設計的文章,發現很多都隻是談了個大概的設計方案,實作部分代碼非常少。正好前段時間也弄了套自己的方案,俺跟着也湊湊熱鬧。

系統分析:

     權限:

             在系統中,權限通過子產品+動作來産生,子產品就是整個系統中的一個子子產品,可能對應一個菜單,動作也就是整個子產品中(在B/S 系統中也就是一個頁面的所有操作,比如“浏覽、添加、修改、删除”等)。将子產品與之組合可以産生此子產品下的所有權限。

     角色:

            權限的集合,角色與角色之間屬于平級關系,将基本權限添加到一個角色中,友善權限的配置設定。

    表設計:

            我這裡偷了個懶,将角色表、角色_權限表二表合一。

            角色表:Role: iSyscode,cName,cMenuList,dDate,iStatusCode

            權限表:Menu:iSysCode,cName,iParentID,dDate,iStatusCode

過程:

     1、登入:

           使用者登入提取其角色ID,根據角色ID取出其享有的權限cMenuList。背景操作樹根據這個權限集合動态生成。需要說明的是這棵樹無重新整理動态提取子項。

 效果:

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 1

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 2

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 1 public   void  Treeview1_TreeNodePopulate( object  sender, TreeNodeEventArgs e)

 3

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  2     

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 4

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 3        if (IsCallback)

 5

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 4        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 6

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 5            if (e.Node.ChildNodes.Count == 0)

 7

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 6            

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 8

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 7                LoadChildNode(e.Node);

 9

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 8            }

10

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 9        }

11

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

10    }

12

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

11

13

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

12      private   void  LoadChildNode(TreeNode node)

14

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

13     

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

15

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

14        int iParentID = Convert.ToInt32(node.Value);

16

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

15        //1  系統管理者   //2  總經理    //3    使用者  

17

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

16        Basic_Menu bmMain = new Basic_Menu();

18

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

17        IList<Basic_MenuInfo> bmInfoList = bmMain.GetMenu_List(1, iParentID);

19

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

18

20

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

19        foreach (Basic_MenuInfo bmInfo in bmInfoList)

21

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

20        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

22

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

21            TreeNode subNode = new TreeNode(bmInfo.cName);

23

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

22            subNode.Value = bmInfo.iSysCode.ToString();

24

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

23            subNode.NavigateUrl = "http://www.lxqq.cn";

25

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

24            subNode.Target = "_blank";

26

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

25

27

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

26            try

28

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

27            

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

29

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

28                if (bmInfo.iChildCount > 0)

30

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

29                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

31

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

30                    subNode.SelectAction = TreeNodeSelectAction.SelectExpand;

32

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

31                    subNode.PopulateOnDemand = true;

33

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

32                    subNode.NavigateUrl = "#";

34

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

33                }

35

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

34            }

36

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

35            catch

37

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

36            

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

38

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

37                subNode.ImageUrl = "WebResource.axd?a=s&r=TreeView_XP_Explorer_ParentNode.gif&t=632242003305625000";

39

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

38            }

40

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

39            node.ChildNodes.Add(subNode);

41

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

40        }

42

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

41        

43

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

42    }

     2、權限設定:

           在這裡我用Div布局,用Css設定縮進效果,背景用了個遞歸取出所有權限項,并根據所設定對象擁有的權限項設定checkbox的狀态是否選中。設定完畢,(用hidden包存所有選中項),背景用Request.Form取出所有標明項的值加以操作。在這還有一個重點是checkbox的onclick操作。如選中父項,則相應子項也随之選中;子項選中,父項也跟着選中。在這裡,要感謝我的老大。呵呵,因為我剛弄到這,就發現我老大有這個功能的JS實作。稍加改動,呵呵,正好用到這裡。

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 代碼:

 1

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 2

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 1 protected   void  Page_Load( object  sender, EventArgs e)

 3

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  2     

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 4

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 3        if (!this.IsPostBack)

 5

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 4        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 6

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 5            string str = BasicMenuList(0);

 7

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 6            content.InnerHtml = str;

 8

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 7

 9

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 8            string strMenuItem="1,2,3,4,5,6,7,8,11";

10

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 9            WebUtility.ScriptStartupRegister(this.Page, "SetDefaultValue('"+strMenuItem+"')");

11

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

10        }

12

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

11    }

13

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

12      private   string  BasicMenuList( int  iParentID)

14

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

13     

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

15

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

14        string result = "";

16

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

15        //1  系統管理者   //2  總經理    //3    使用者   

17

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

16        Basic_Menu bmMain = new Basic_Menu();

18

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

17        IList<Basic_MenuInfo> bmInfoList = bmMain.GetMenu_List(1, iParentID);

19

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

18

20

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

19        foreach(Basic_MenuInfo bmInfo in bmInfoList)

21

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

20        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

22

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

21            result += "<div class=\"divIndent2\">" + string.Format("<input type=\"checkbox\" id=\"cb

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{0}\" parentID=\"

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{3}\" childCount=\"

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{4}\" value=\"

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{1}\" οnclick=\"DoSelect(this);\">{2}", bmInfo.iSysCode, bmInfo.iSysCode, bmInfo.cName, iParentID, bmInfo.iChildCount);

23

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

22            if (bmInfo.iChildCount > 0)

24

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

23            

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

25

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

24                result += BasicMenuList(bmInfo.iSysCode);

26

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

25            }

27

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

26

28

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

27            result += "</div>";

29

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

28        }

30

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

29        return result;

31

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

30    }

JS實作代碼:

  1

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  2

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   1 < div style = " text-align: left; " >

  3

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   2              < div > 權限管理示例 < / div><br  / >

  4

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   3              < div id = " content "  class = " divIndent1 "  runat = " server " >

  5

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   4              < / div>

  6

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   5              < br  / >

  7

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   6              < asp:Button ID = " btnShow "  Text = " SET-Permission "  OnClientClick = " return setValue(); "  runat = " server "  OnClick = " btnShow_Click "   / >

  8

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   7              < input type = " hidden "  id = " hiddenRes "  runat = " server "   / >

  9

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   8          < / div>

 10

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

   9

 11

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  10          < script language = " javascript "  type = " text/javascript " >

 12

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  11              var  checkStatus;

 13

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  12

 14

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  13              // 将值儲存在Hidden裡,以便背景讀取

 15

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  14              function  setValue()

 16

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  15             

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 17

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 16                var t = document.getElementsByTagName("input");

 18

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 17                var str="";

 19

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 18                            

 20

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 19                for(var i=0; i<t.length; i++)

 21

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 20                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 22

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 21                    if (t[i].type == "checkbox" && t[i].checked==true)

 23

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 22                    

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 24

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 23                        str+=t[i].value+",";

 25

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 24                    }

 26

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 25                }

 27

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 26                document.getElementById("hiddenRes").value=str;

 28

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 27            }

 29

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  28

 30

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  29              // 設定預設值

 31

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  30              function  SetDefaultValue( xValue )

 32

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  31             

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 33

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 32                var x;

 34

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 33                if( xValue.length == 0)

 35

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 34                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 36

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 35                    return false;

 37

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 36                }

 38

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 37                else

 39

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 38                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 40

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 39                    x = xValue.split(",");

 41

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 40                }

 42

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 41                

 43

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 42                with( document.all)

 44

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 43                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 45

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 44                    for( var i = 0; i<x.length; i++)

 46

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 45                    

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 47

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 46                        item("cb" + x[i]).checked = true;

 48

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 47                    }

 49

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 48                }

 50

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 49            }

 51

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  50

 52

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  51              //

 53

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  52              function  DoSelect(objElement)

 54

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  53             

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 55

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 54                var iParentID=objElement.parentID;

 56

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 55                var iSysCode=objElement.value;

 57

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 56                checkStatus = objElement.checked;

 58

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 57                

 59

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 58                //處理自己

 60

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 59                //if()

 61

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 60                //處理父節點

 62

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 61                if(checkStatus==true)//選中則處理父節點

 63

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 62                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 64

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 63                    DoSelectParent(iParentID);

 65

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 64                    DoSelectChild(iSysCode);

 66

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 65                }

 67

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 66                //處理子節點

 68

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 67                if(checkStatus==false)

 69

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 68                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 70

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 69                    DoSelectChild(iSysCode);

 71

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 70                }

 72

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 71            }

 73

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  72

 74

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  73              // 處理父節點

 75

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  74              function  DoSelectParent(iParentID)

 76

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  75             

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 77

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 76                var t = document.getElementsByTagName("input");

 78

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 77                            

 79

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 78                for(var i=0; i<t.length; i++)

 80

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 79                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 81

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 80                    if (t[i].type == "checkbox" && t[i].value==String(iParentID))

 82

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 81                    

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 83

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 82                        t[i].checked = checkStatus;

 84

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 83                        if( t[i].parentID != 0)

 85

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 84                        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 86

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 85                            DoSelectParent(t[i].parentID);

 87

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 86                        }

 88

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 87                    }

 89

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 88                }

 90

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 89            }

 91

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  90

 92

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  91              // 處理子節點

 93

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  92              function  DoSelectChild(iSysCode)

 94

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

  93             

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 95

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 94                var t = document.getElementsByTagName("input");

 96

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 95                            

 97

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 96                for(var i=0; i<t.length; i++)

 98

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 97                

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

 99

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 98                    if (t[i].type == "checkbox" && t[i].parentID==String(iSysCode))

100

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

 99                    

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

101

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

100                        t[i].checked = checkStatus;

102

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

101                        if( t[i].childCount!=0)

103

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】
基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

102                        

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

{

104

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

103                            DoSelectChild(t[i].value);

105

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

104                        }

106

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

105                    }

107

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

106                }

108

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

107            }

109

基于角色的使用者權限設計+TreeView【欄目權限 操作權限】

108          < / script>

以前還從沒想過可以在HTML元素裡自定義屬性,這裡我在checkbox裡添加了好幾個,parentID,childCount.别說,還真好用。 

說明:

        此權限設計實為測試版本,實際開發中,資料庫設計将進一步分解。例如分為:使用者表Users,權限表:Permission 角色表Role,使用者角色表:User_Role,角色權限表:Role_Permission。另外如果有需要的話,還可以進一步分為欄目權限和操作權限,增加操作表:Operate 欄目操作表:Permission_Operate。

        水準有限,寫的有點亂。有什麼不同意見歡迎一起交流!

轉載于:https://www.cnblogs.com/xpengfee/archive/2007/09/12/890800.html