天天看點

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

 我們分享了使用Jquery EasyUI來進行ASP.NET項目的開發的相關方法,每一個子產品都有其共用性,細細了解與掌握,我相信使用EasyUI進行開發還是相當友善的,每篇文章,我們力求通俗易懂。

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

   一、“子產品(菜單)”管理主界面UI的ASPX代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>&lt;%@ Page Language="C#" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="ModuleAdmin.aspx.cs" Inherits="RDIFramework.WebApp.Modules.ModuleAdmin" %&gt;</code>

<code>&lt;</code><code>asp:Content</code> <code>ID</code><code>=</code><code>"Content1"</code> <code>ContentPlaceHolderID</code><code>=</code><code>"head"</code> <code>runat</code><code>=</code><code>"server"</code><code>&gt;</code>

<code>&lt;/</code><code>asp:Content</code><code>&gt;</code>

<code>&lt;</code><code>asp:Content</code> <code>ID</code><code>=</code><code>"Content2"</code> <code>ContentPlaceHolderID</code><code>=</code><code>"ContentPlaceHolder1"</code> <code>runat</code><code>=</code><code>"server"</code><code>&gt;   </code>

<code>     </code><code>&lt;</code><code>div</code> <code>id</code><code>=</code><code>"toolbar"</code><code>&gt;</code>

<code>        </code><code>&lt;%=base.BuildToolBarButtons()%&gt;</code>

<code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>table</code> <code>id</code><code>=</code><code>"navGrid"</code><code>&gt;&lt;/</code><code>table</code><code>&gt;</code>

<code>                                                                                                                                </code> 

<code>    </code><code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code> <code>src</code><code>=</code><code>"../Scripts/Linqjs/linq.min.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code> <code>src</code><code>=</code><code>"../Scripts/Linqjs/linq.jquery.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code> <code>src</code><code>=</code><code>"../Scripts/Business/ModuleAdmin.js?v=5"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

   二:綁定目前登入使用者所擁有的功能按鈕清單代碼如下: 

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

<code>private bool permissionUserModulePermission = </code><code>false</code><code>;</code>

<code>        </code><code>private bool permissionRoleModulePermission = </code><code>false</code><code>;</code>

<code>        </code><code>private bool permissionOrganizeModulePermission = </code><code>false</code><code>;</code>

<code>        </code><code>private bool permissionModuleConfig = </code><code>false</code><code>;</code>

<code>        </code><code>protected void Page_Load(object sender, EventArgs e)</code>

<code>        </code><code>{</code>

<code>            </code><code>if</code> <code>(!Page.IsPostBack)</code>

<code>            </code><code>{</code>

<code>                </code><code>this</code><code>.GetPermission();</code>

<code>            </code><code>}</code>

<code>        </code><code>}</code>

<code>        </code><code>/// &lt;summary&gt;</code>

<code>        </code><code>/// 獲得頁面的權限</code>

<code>        </code><code>/// &lt;/summary&gt;</code>

<code>        </code><code>private void GetPermission()</code>

<code>            </code><code>this</code><code>.permissionAdd = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.Add"</code><code>);</code>

<code>            </code><code>this</code><code>.permissionEdit = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.Edit"</code><code>);</code>

<code>            </code><code>this</code><code>.permissionDelete = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.Delete"</code><code>);</code>

<code>            </code><code>this</code><code>.permissionExport = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.Export"</code><code>);</code>

<code>            </code><code>//this.permissionAccredit = this.IsAuthorized("UserManagement.Accredit");</code>

<code>            </code><code>this</code><code>.permissionUserModulePermission = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.UserModulePermission"</code><code>);</code>

<code>            </code><code>this</code><code>.permissionRoleModulePermission = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.RoleModulePermission"</code><code>);</code>

<code>            </code><code>this</code><code>.permissionOrganizeModulePermission = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.OrganizeModulePermission"</code><code>) &amp;&amp; SystemInfo.EnableOrganizePermission;</code>

<code>            </code><code>this</code><code>.permissionModuleConfig = </code><code>this</code><code>.IsAuthorized(</code><code>"ModuleManagement.ModuleConfig"</code><code>);</code>

<code>        </code><code>/// 加載工具欄</code>

<code>        </code><code>/// &lt;returns&gt;工具欄HTML&lt;/returns&gt;</code>

<code>        </code><code>public override string BuildToolBarButtons()</code>

<code>            </code><code>StringBuilder sb = </code><code>new</code> <code>StringBuilder();</code>

<code>            </code><code>string linkbtn_template = </code><code>"&lt;a id=\"a_{0}\" class=\"easyui-linkbutton\" style=\"float:left\"  plain=\"true\" href=\"javascript:;\" icon=\"{1}\"  {2} title=\"{3}\"&gt;{4}&lt;/a&gt;"</code><code>;</code>

<code>            </code><code>sb.Append(</code><code>"&lt;a id=\"a_refresh\" class=\"easyui-linkbutton\" style=\"float:left\"  plain=\"true\" href=\"javascript:;\" icon=\"icon-reload\"  title=\"重新加載\"&gt;重新整理&lt;/a&gt; "</code><code>);</code>

<code>            </code><code>sb.Append(</code><code>"&lt;div class='datagrid-btn-separator'&gt;&lt;/div&gt; "</code><code>);</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"add"</code><code>, </code><code>"icon-tab_add"</code><code>, permissionAdd ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"新增子產品(菜單)"</code><code>, </code><code>"新增"</code><code>));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"edit"</code><code>, </code><code>"icon-tab_edit"</code><code>, permissionEdit ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"修改選中的子產品(菜單)"</code><code>, </code><code>"修改"</code><code>));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"delete"</code><code>, </code><code>"icon-tab_delete"</code><code>, permissionDelete ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"删除選中的子產品(菜單)"</code><code>, </code><code>"删除"</code><code>));</code>

<code>            </code><code>//sb.Append(string.Format(linkbtn_template, "move", "icon-shape_move_forwards", permissionMove ? "" : "disabled=\"True\"", "移動選中的子產品(菜單)", "移動"));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"export"</code><code>, </code><code>"icon-tab_go"</code><code>, permissionExport ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"導出子產品(菜單)資料"</code><code>, </code><code>"導出"</code><code>));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"setusermodulepermission"</code><code>, </code><code>"icon-user_key"</code><code>, permissionUserModulePermission ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"設定使用者的子產品(菜單)通路權限"</code><code>, </code><code>"使用者子產品權限"</code><code>));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"setrolemodulepermission"</code><code>, </code><code>"icon-group_key"</code><code>, permissionRoleModulePermission ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"設定角色的子產品(菜單)通路權限"</code><code>, </code><code>"角色子產品權限"</code><code>));</code>

<code>            </code><code>sb.Append(string.Format(linkbtn_template, </code><code>"moduleconfig"</code><code>, </code><code>"icon-table_gear"</code><code>, permissionRoleModulePermission ? </code><code>""</code> <code>: </code><code>"disabled=\"True\""</code><code>, </code><code>"設定子產品的可用性"</code><code>, </code><code>"子產品配置"</code><code>));</code>

<code>            </code><code>return</code> <code>sb.ToString();</code>

   三、綁定子產品主wldmTreeGrid 的JS代碼如下: 

50

51

<code>var</code> <code>grid = {</code>

<code>    </code><code>databind: </code><code>function</code> <code>(winsize) {</code>

<code>        </code><code>navgrid = $(</code><code>'#navGrid'</code><code>).treegrid({</code>

<code>            </code><code>toolbar: </code><code>'#toolbar'</code><code>,</code>

<code>            </code><code>title: </code><code>'子產品(菜單)清單'</code><code>,</code>

<code>            </code><code>iconCls: </code><code>'icon icon-chart_organisation'</code><code>,</code>

<code>            </code><code>width: winsize.width,</code>

<code>            </code><code>height: winsize.height,</code>

<code>            </code><code>nowrap: </code><code>false</code><code>,</code>

<code>            </code><code>rownumbers: </code><code>true</code><code>,</code>

<code>            </code><code>//animate: true,</code>

<code>            </code><code>resizable: </code><code>true</code><code>,</code>

<code>            </code><code>collapsible: </code><code>false</code><code>,</code>

<code>            </code><code>url: actionUrl,</code>

<code>            </code><code>idField: </code><code>'Id'</code><code>,</code>

<code>            </code><code>treeField: </code><code>'FullName'</code><code>,</code>

<code>            </code><code>frozenColumns: [[</code>

<code>                </code><code>{ title: </code><code>'子產品(菜單)名稱'</code><code>, field: </code><code>'FullName'</code><code>, width: 200 },</code>

<code>                </code><code>{ title: </code><code>'編碼'</code><code>, field: </code><code>'Code'</code><code>, width: 130 }</code>

<code>            </code><code>]],</code>

<code>            </code><code>columns: [[</code>

<code>                </code><code>{ title: </code><code>'Id'</code><code>, field: </code><code>'Id'</code><code>, hidden: </code><code>true</code> <code>},</code>

<code>                </code><code>{ title: </code><code>'ParentId'</code><code>, field: </code><code>'ParentId'</code><code>, hidden: </code><code>true</code> <code>},</code>

<code>                </code><code>{ title: </code><code>'子產品分類'</code><code>, field: </code><code>'Category'</code><code>, width: 100 },</code>

<code>                </code><code>{ title: </code><code>'圖示'</code><code>, field: </code><code>'IconCss'</code><code>, width: 130, hidden: </code><code>true</code> <code>},</code>

<code>                </code><code>{ title: </code><code>'Web連結位址'</code><code>, field: </code><code>'NavigateUrl'</code><code>, width: 200 },</code>

<code>                </code><code>{ title: </code><code>'WinForm程式集'</code><code>, field: </code><code>'AssemblyName'</code><code>, width: 150 },</code>

<code>                </code><code>{ title: </code><code>'WinForm窗體'</code><code>, field: </code><code>'FormName'</code><code>, width: 200 },</code>

<code>                </code><code>{</code>

<code>                    </code><code>title: </code><code>'公共'</code><code>, field: </code><code>'IsPublic'</code><code>, width: 50, align: </code><code>'center'</code><code>, formatter: </code><code>function</code> <code>(v, d, i) {</code>

<code>                        </code><code>return</code> <code>'&lt;img src="http://images.cnblogs.com/'</code> <code>+ (v ? "checkmark.gif</code><code>" : "</code><code>checknomark.gif</code><code>") + '"</code> <code>/&gt;';</code>

<code>                    </code><code>}</code>

<code>                </code><code>},</code>

<code>                </code><code>{ title: </code><code>'有效'</code><code>, field: </code><code>'Enabled'</code><code>, width: 50, align: </code><code>'center'</code><code>, formatter: imgcheckbox },             </code>

<code>                </code><code>{ title: </code><code>'AllowEdit'</code><code>, field: </code><code>'AllowEdit'</code><code>, hidden: </code><code>true</code> <code>},</code>

<code>                </code><code>{ title: </code><code>'AllowDelete'</code><code>, field: </code><code>'AllowDelete'</code><code>, hidden: </code><code>true</code> <code>},</code>

<code>                </code><code>{ title: </code><code>'排序'</code><code>, field: </code><code>'SortCode'</code><code>, width: 80 },</code>

<code>                </code><code>{ title: </code><code>'備注'</code><code>, field: </code><code>'Description'</code><code>, width: 500 }</code>

<code>            </code><code>]]</code>

<code>        </code><code>});</code>

<code>    </code><code>},</code>

<code>    </code><code>reload: </code><code>function</code> <code>() {</code>

<code>        </code><code>navgrid.treegrid(</code><code>'reload'</code><code>);</code>

<code>    </code><code>selected: </code><code>function</code> <code>() {</code>

<code>        </code><code>return</code> <code>navgrid.treegrid(</code><code>'getSelected'</code><code>);</code>

<code>    </code><code>}</code>

<code>};</code>

<code>var</code> <code>imgcheckbox = </code><code>function</code> <code>(cellvalue, options, rowObject) {</code>

<code>    </code><code>return</code> <code>cellvalue ? </code><code>'&lt;img src="/css/icon/ok.png" alt="正常" title="正常" /&gt;'</code> <code>: </code><code>'&lt;img src="/css/icon/stop.png" alt="禁用" title="禁用" /&gt;'</code><code>;</code>

<code>}</code>

   四、添加與子產品(菜單)主界面 

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

  代碼如下:  

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

<code>add: </code><code>function</code> <code>() {</code>

<code>        </code><code>if</code> <code>($(</code><code>this</code><code>).linkbutton(</code><code>'options'</code><code>).disabled == </code><code>true</code><code>) {</code>

<code>            </code><code>return</code><code>;</code>

<code>        </code><code>var</code> <code>addDialog = top.$.hDialog({</code>

<code>            </code><code>href: formUrl, title: </code><code>'添加子產品(菜單)'</code><code>, iconCls: </code><code>'icon-tab_add'</code><code>, width: 490, height: 550,</code>

<code>            </code><code>onLoad: </code><code>function</code> <code>() {</code>

<code>                </code><code>crud.bindCtrl();</code>

<code>                </code><code>crud.bindCategory();</code>

<code>                </code><code>var</code> <code>row = grid.selected();</code>

<code>                </code><code>if</code> <code>(row) {</code>

<code>                    </code><code>top.$(</code><code>'#txt_ParentId'</code><code>).combotree(</code><code>'setValue'</code><code>, row.ParentId);</code>

<code>                </code><code>}</code>

<code>            </code><code>},</code>

<code>            </code><code>submit: </code><code>function</code> <code>() {</code>

<code>                </code><code>if</code> <code>(top.$(</code><code>'#uiform'</code><code>).validate().form()) {</code>

<code>                    </code><code>//var param = createParam('add', '0');</code>

<code>                    </code><code>var</code> <code>vcategory = top.$(</code><code>'#txt_Category'</code><code>).combobox(</code><code>'getValue'</code><code>);</code>

<code>                    </code><code>var</code> <code>vparentid = top.$(</code><code>'#txt_ParentId'</code><code>).combobox(</code><code>'getValue'</code><code>);</code>

<code>                    </code><code>var</code> <code>param = </code><code>'action=Add&amp;vcategory='</code> <code>+ vcategory + </code><code>'&amp;vparentid='</code> <code>+ vparentid + </code><code>'&amp;'</code> <code>+ top.$(</code><code>'#uiform'</code><code>).serialize();</code>

<code>                    </code><code>$.ajaxjson(actionUrl, param, </code><code>function</code> <code>(d) {</code>

<code>                        </code><code>if</code> <code>(d.Success) {</code>

<code>                            </code><code>msg.ok(d.Message);</code>

<code>                            </code><code>addDialog.dialog(</code><code>'close'</code><code>);</code>

<code>                            </code><code>grid.reload();</code>

<code>                        </code><code>} </code><code>else</code> <code>{</code>

<code>                            </code><code>MessageOrRedirect(d);</code>

<code>                        </code><code>}</code>

<code>                    </code><code>});</code>

<code>    </code><code>edit: </code><code>function</code> <code>() {</code>

<code>        </code><code>var</code> <code>row = grid.selected();</code>

<code>        </code><code>if</code> <code>(row) {</code>

<code>            </code><code>var</code> <code>editDailog = top.$.hDialog({</code>

<code>                </code><code>href: formUrl, title: </code><code>'修改子產品(菜單)'</code><code>, iconCls: </code><code>'icon-tab_edit'</code><code>, width: 490, height: 550,</code>

<code>                </code><code>onLoad: </code><code>function</code> <code>() {</code>

<code>                    </code><code>crud.bindCtrl(row.Id);</code>

<code>                    </code><code>crud.bindCategory();</code>

<code>                    </code><code>top.$(</code><code>'#txt_Code'</code><code>).val(row.Code);</code>

<code>                    </code><code>top.$(</code><code>'#txt_FullName'</code><code>).val(row.FullName);</code>

<code>                    </code><code>top.$(</code><code>'#txt_Category'</code><code>).combobox(</code><code>'setValue'</code><code>, row.Category);</code>

<code>                    </code><code>top.$(</code><code>'#txt_NavigateUrl'</code><code>).val(row.NavigateUrl);</code>

<code>                    </code><code>top.$(</code><code>'#txt_IconCss'</code><code>).val(row.IconCss);</code>

<code>                    </code><code>//top.$('#smallIcon').attr('class', "icon " + row.IconCss);</code>

<code>                    </code><code>top.$(</code><code>'#smallIcon'</code><code>).attr(</code><code>'class'</code><code>, row.IconCss);</code>

<code>                    </code><code>top.$(</code><code>'#txt_AssemblyName'</code><code>).val(row.AssemblyName);</code>

<code>                    </code><code>top.$(</code><code>'#txt_FormName'</code><code>).val(row.FormName);</code>

<code>                    </code><code>top.$(</code><code>'#chk_Enabled'</code><code>).attr(</code><code>'checked'</code><code>, row.Enabled == </code><code>"1"</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#chk_IsPublic'</code><code>).attr(</code><code>'checked'</code><code>, row.IsPublic == </code><code>"1"</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#chk_Expand'</code><code>).attr(</code><code>'checked'</code><code>, row.Expand == </code><code>"1"</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#chk_AllowEdit'</code><code>).attr(</code><code>'checked'</code><code>, row.AllowEdit == </code><code>"1"</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#chk_AllowDelete'</code><code>).attr(</code><code>'checked'</code><code>, row.AllowDelete == </code><code>"1"</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#txt_Description'</code><code>).val(row.Description);</code>

<code>                    </code><code>top.$(</code><code>'#txt_IconUrl'</code><code>).val(row.IconUrl);</code>

<code>                </code><code>submit: </code><code>function</code> <code>() {</code>

<code>                    </code><code>if</code> <code>(top.$(</code><code>'#uiform'</code><code>).validate().form()) {</code>

<code>                        </code><code>//儲存時判斷目前節點所選的父節點,不能為目前節點的子節點,這樣就亂套了....</code>

<code>                        </code><code>var</code> <code>treeParentId = top.$(</code><code>'#txt_ParentId'</code><code>).combotree(</code><code>'tree'</code><code>); </code><code>// 得到樹對象</code>

<code>                        </code><code>var</code> <code>node = treeParentId.tree(</code><code>'getSelected'</code><code>);</code>

<code>                        </code><code>if</code> <code>(node) {</code>

<code>                            </code><code>var</code> <code>nodeParentId = treeParentId.tree(</code><code>'find'</code><code>, row.Id);</code>

<code>                            </code><code>var</code> <code>children = treeParentId.tree(</code><code>'getChildren'</code><code>, nodeParentId.target);</code>

<code>                            </code><code>var</code> <code>nodeIds = </code><code>''</code><code>;</code>

<code>                            </code><code>var</code> <code>isFind = </code><code>'false'</code><code>;</code>

<code>                            </code><code>for</code> <code>(</code><code>var</code> <code>index = 0; index &lt; children.length; index++) {</code>

<code>                                </code><code>if</code> <code>(children[index].id == node.id) {</code>

<code>                                    </code><code>isFind = </code><code>'true'</code><code>;</code>

<code>                                    </code><code>break</code><code>;</code>

<code>                                </code><code>}</code>

<code>                            </code><code>}</code>

<code>                            </code><code>if</code> <code>(isFind == </code><code>'true'</code><code>) {</code>

<code>                                </code><code>top.$.messager.alert(</code><code>'溫馨提示'</code><code>, </code><code>'請選擇父節點元素!'</code><code>, </code><code>'warning'</code><code>);</code>

<code>                                </code><code>return</code><code>;</code>

<code>                        </code><code>var</code> <code>vcategory = top.$(</code><code>'#txt_Category'</code><code>).combobox(</code><code>'getValue'</code><code>);</code>

<code>                        </code><code>var</code> <code>vparentid = top.$(</code><code>'#txt_ParentId'</code><code>).combobox(</code><code>'getValue'</code><code>);</code>

<code>                        </code><code>var</code> <code>query = </code><code>'action=Edit&amp;vcategory='</code> <code>+ vcategory + </code><code>'&amp;vparentid='</code> <code>+ vparentid + </code><code>'&amp;KeyId='</code> <code>+ row.Id + </code><code>'&amp;'</code> <code>+ top.$(</code><code>'#uiform'</code><code>).serialize();</code>

<code>                        </code><code>$.ajaxjson(actionUrl, query, </code><code>function</code> <code>(d) {</code>

<code>                            </code><code>if</code> <code>(d.Success) {</code>

<code>                                </code><code>msg.ok(d.Message);</code>

<code>                                </code><code>editDailog.dialog(</code><code>'close'</code><code>);</code>

<code>                                </code><code>grid.reload();</code>

<code>                            </code><code>} </code><code>else</code> <code>{</code>

<code>                                </code><code>MessageOrRedirect(d);</code>

<code>                        </code><code>});</code>

<code>            </code><code>});</code>

<code>        </code><code>} </code><code>else</code> <code>{</code>

<code>            </code><code>msg.warning(</code><code>'請選擇要修改菜單!'</code><code>);</code>

<code>            </code><code>return</code> <code>false</code><code>;</code>

<code>        </code><code>return</code> <code>false</code><code>;</code>

   在子產品(菜單)編輯與新增界面上,我們可以設定子產品的圖示,設定子產品圖示如下圖所示:

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

  這個是如何實作的呢?

  首先準備圖示的基頁面,截取部分格式如下,儲存為一個html檔案,如:iconlist.htm:  

<code>&lt;</code><code>ul</code> <code>id</code><code>=</code><code>"iconlist"</code> <code>style</code><code>=</code><code>"margin:0px;padding:0px; list-style-type:none;"</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/accept.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-accept"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/add.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-add"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/advancedsettings.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-advancedsettings"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/advancedsettings2.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-advancedsettings2"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/anchor.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-anchor"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_delete.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_delete"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_double.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_double"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_edit.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_edit"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_error.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_error"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_form.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_form"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_form_add.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_form_add"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_form_delete.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_form_delete"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_form_edit.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_form_edit"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_form_magnify.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_form_magnify"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_get.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_get"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_go.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_go"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_home.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_home"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_key.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_key"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code> <code>title</code><code>=</code><code>"/css/icon/application_lightning.png"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"icon icon-application_lightning"</code><code>&gt; &lt;/</code><code>span</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>ul</code><code>&gt;</code>

   然後在我們的js中調用這個html做相應的處理即可了,js部分代碼為:

<code>var</code> <code>showIcon = </code><code>function</code> <code>() {</code>

<code>    </code><code>top.$(</code><code>'#selecticon'</code><code>).click(</code><code>function</code> <code>() {</code>

<code>        </code><code>var</code> <code>iconDialog = top.$.hDialog({</code>

<code>            </code><code>iconCls: </code><code>'icon-application_view_icons'</code><code>,</code>

<code>            </code><code>href: </code><code>'/css/iconlist.htm?v='</code> <code>+ Math.random(),</code>

<code>            </code><code>title: </code><code>'選取圖示'</code><code>, width: 800, height: 600, showBtns: </code><code>false</code><code>,</code>

<code>                </code><code>top.$(</code><code>'#iconlist li'</code><code>).attr(</code><code>'style'</code><code>, </code><code>'float:left;border:1px solid #fff;margin:2px;width:16px;cursor:pointer'</code><code>).click(</code><code>function</code> <code>() {</code>

<code>                    </code><code>//var iconCls = top.$(this).find('span').attr('class').replace('icon ', '');</code>

<code>                    </code><code>var</code> <code>iconCls = top.$(</code><code>this</code><code>).find(</code><code>'span'</code><code>).attr(</code><code>'class'</code><code>);</code>

<code>                    </code><code>top.$(</code><code>'#txt_IconCss'</code><code>).val(iconCls);</code>

<code>                    </code><code>top.$(</code><code>'#txt_IconUrl'</code><code>).val(top.$(</code><code>this</code><code>).attr(</code><code>'title'</code><code>));</code>

<code>                    </code><code>//top.$('#smallIcon').attr('class', "icon " + iconCls);</code>

<code>                    </code><code>top.$(</code><code>'#smallIcon'</code><code>).attr(</code><code>'class'</code><code>, iconCls);</code>

<code>                    </code><code>iconDialog.dialog(</code><code>'close'</code><code>);</code>

<code>                </code><code>}).hover(</code><code>function</code> <code>() {</code>

<code>                    </code><code>top.$(</code><code>this</code><code>).css({ </code><code>'border'</code><code>: </code><code>'1px solid red'</code> <code>});</code>

<code>                </code><code>}, </code><code>function</code> <code>() {</code>

<code>                    </code><code>top.$(</code><code>this</code><code>).css({ </code><code>'border'</code><code>: </code><code>'1px solid #fff'</code> <code>});</code>

<code>                </code><code>});</code>

<code>    </code><code>});</code>

五、使用者子產品(菜單)權限批量設定

  使用者子產品(菜單)權限功能項用于設定那些使用者可以通路那些子產品,那些使用者不能通路那些子產品。使用者子產品(菜單)權限設定如下圖使用者子產品(菜單)權限集中設定。左側列出架構的所有有效使用者,右側為子產品(菜單)項,選中相應的子產品後儲存,即可為目前選中使用者授予子產品的通路權限。

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

  js代碼如下: 

<code>userModulePermissionBatchSet: </code><code>function</code> <code>() { </code><code>//使用者子產品(菜單)權限批量設定</code>

<code>        </code><code>var</code> <code>userGrid;</code>

<code>        </code><code>var</code> <code>curUserModuleIds = []; </code><code>//目前所選使用者所擁有的子產品ID</code>

<code>        </code><code>var</code> <code>setDialog = top.$.hDialog({</code>

<code>            </code><code>title: </code><code>'使用者子產品(菜單)權限批量設定'</code><code>,</code>

<code>            </code><code>width: 670, height: 600, iconCls: </code><code>'icon-user_key'</code><code>, </code><code>//cache: false,</code>

<code>            </code><code>href: </code><code>"Modules/html/PermissionBacthSetForm.htm?n="</code> <code>+ Math.random(),</code>

<code>                </code><code>using(</code><code>'panel'</code><code>, </code><code>function</code> <code>() {</code>

<code>                    </code><code>top.$(</code><code>'#panelTarget'</code><code>).panel({ title: </code><code>'子產品(菜單)'</code><code>, iconCls: </code><code>'icon-org'</code><code>, height: $(window).height() - 3 });</code>

<code>                </code><code>userGrid = top.$(</code><code>'#leftnav'</code><code>).datagrid({</code>

<code>                    </code><code>title: </code><code>'所有使用者'</code><code>,</code>

<code>                    </code><code>url: </code><code>'Modules/handler/UserAdminHandler.ashx'</code><code>,</code>

<code>                    </code><code>nowrap: </code><code>false</code><code>, </code><code>//折行</code>

<code>                    </code><code>//fit: true,</code>

<code>                    </code><code>rownumbers: </code><code>true</code><code>, </code><code>//行号</code>

<code>                    </code><code>striped: </code><code>true</code><code>, </code><code>//隔行變色</code>

<code>                    </code><code>idField: </code><code>'Id'</code><code>, </code><code>//主鍵</code>

<code>                    </code><code>singleSelect: </code><code>true</code><code>, </code><code>//單選</code>

<code>                    </code><code>frozenColumns: [[]],</code>

<code>                    </code><code>columns: [[</code>

<code>                        </code><code>{ title: </code><code>'登入名'</code><code>, field: </code><code>'UserName'</code><code>, width: 120, align: </code><code>'left'</code> <code>},</code>

<code>                        </code><code>{ title: </code><code>'使用者名'</code><code>, field: </code><code>'RealName'</code><code>, width: 150, align: </code><code>'left'</code> <code>}</code>

<code>                    </code><code>]],</code>

<code>                    </code><code>onLoadSuccess: </code><code>function</code> <code>(data) {</code>

<code>                        </code><code>top.$(</code><code>'#rightnav'</code><code>).tree({</code>

<code>                            </code><code>cascadeCheck: </code><code>false</code><code>, </code><code>//關聯選中節點</code>

<code>                            </code><code>checkbox: </code><code>true</code><code>,</code>

<code>                            </code><code>lines: </code><code>true</code><code>,</code>

<code>                            </code><code>url: </code><code>'Modules/handler/ModuleAdminHandler.ashx?action=GetModuleTree'</code><code>,</code>

<code>                            </code><code>onSelect: </code><code>function</code> <code>(node) {</code>

<code>                                </code><code>top.$(</code><code>'#rightnav'</code><code>).tree(</code><code>'getChildren'</code><code>, node.target);</code>

<code>                        </code><code>top.$(</code><code>'#leftnav'</code><code>).datagrid(</code><code>'selectRow'</code><code>, 0);</code>

<code>                    </code><code>},</code>

<code>                    </code><code>onSelect: </code><code>function</code> <code>(rowIndex, rowData) {</code>

<code>                        </code><code>curUserModuleIds = [];</code>

<code>                        </code><code>var</code> <code>query = </code><code>'action=GetModuleByUserId&amp;userid='</code> <code>+ rowData.Id;</code>

<code>                        </code><code>$.ajaxtext(</code><code>'handler/PermissionHandler.ashx'</code><code>, query, </code><code>function</code> <code>(data) {</code>

<code>                            </code><code>var</code> <code>moduelTree = top.$(</code><code>'#rightnav'</code><code>);</code>

<code>                            </code><code>moduelTree.tree(</code><code>'uncheckedAll'</code><code>);</code>

<code>                            </code><code>if</code> <code>(data == </code><code>''</code> <code>|| data.toString() == </code><code>'[object XMLDocument]'</code><code>) {</code>

<code>                            </code><code>curUserModuleIds = data.split(</code><code>','</code><code>);</code>

<code>                            </code><code>for</code> <code>(</code><code>var</code> <code>i = 0; i &lt; curUserModuleIds.length; i++) {</code>

<code>                                </code><code>var</code> <code>node = moduelTree.tree(</code><code>'find'</code><code>, curUserModuleIds[i]);</code>

<code>                                </code><code>if</code> <code>(node)</code>

<code>                                    </code><code>moduelTree.tree(</code><code>"check"</code><code>, node.target);</code>

<code>                </code><code>var</code> <code>allSelectModuledIds = permissionMgr.getUserSelectedModule().split(</code><code>','</code><code>);</code>

<code>                </code><code>var</code> <code>grantModuleIds = </code><code>''</code><code>;</code>

<code>                </code><code>var</code> <code>revokeModuleIds = </code><code>''</code><code>;</code>

<code>                </code><code>var</code> <code>flagRevoke = 0;</code>

<code>                </code><code>var</code> <code>flagGrant = 0;</code>

<code>                </code><code>while</code> <code>(flagRevoke &lt; curUserModuleIds.length) {</code>

<code>                    </code><code>if</code> <code>($.inArray(curUserModuleIds[flagRevoke], allSelectModuledIds) == -1) {</code>

<code>                        </code><code>revokeModuleIds += curUserModuleIds[flagRevoke] + </code><code>','</code><code>; </code><code>//得到收回的權限清單</code>

<code>                    </code><code>++flagRevoke;</code>

<code>                </code><code>while</code> <code>(flagGrant &lt; allSelectModuledIds.length) {</code>

<code>                    </code><code>if</code> <code>($.inArray(allSelectModuledIds[flagGrant], curUserModuleIds) == -1) {</code>

<code>                        </code><code>grantModuleIds += allSelectModuledIds[flagGrant] + </code><code>','</code><code>; </code><code>//得到授予的權限清單</code>

<code>                    </code><code>++flagGrant;</code>

<code>                </code><code>var</code> <code>query = </code><code>'action=SetUserModulePermission&amp;userid='</code> <code>+ top.$(</code><code>'#leftnav'</code><code>).datagrid(</code><code>'getSelected'</code><code>).Id + </code><code>'&amp;grantIds='</code> <code>+ grantModuleIds + </code><code>"&amp;revokeIds="</code> <code>+ revokeModuleIds;</code>

<code>                </code><code>$.ajaxjson(</code><code>'handler/PermissionHandler.ashx'</code><code>, query, </code><code>function</code> <code>(d) {</code>

<code>                    </code><code>if</code> <code>(d.Data &gt; 0) {</code>

<code>                        </code><code>msg.ok(</code><code>'設定成功!'</code><code>);</code>

<code>                    </code><code>else</code> <code>{</code>

<code>                        </code><code>alert(d.Message);</code>

六、角色子產品(菜單)權限批量設定

  角色子產品(菜單)操作權限用于設定那些角色擁有那些操作(功能)權限,那些角色不擁有那些操作(功能)權限。如下圖所示,左側列出架構的所有有效角色,右側為相應的子產品(菜單),選中相應的子產品(菜單)後儲存,即可為目前選中角色授予相應的子產品(菜單)可通路的控制。

使用Jquery+EasyUI 進行架構項目開發案例講解之五--子產品(菜單)管理源碼分享

  js部分代碼如下:  

<code>roleModulePermissionBatchSet: </code><code>function</code> <code>() { </code><code>//角色子產品(菜單)權限批量設定</code>

<code>        </code><code>var</code> <code>roleGrid;</code>

<code>        </code><code>var</code> <code>curRoleModuleIds = []; </code><code>//目前所選角色所擁有的子產品ID</code>

<code>            </code><code>title: </code><code>'角色子產品(菜單)權限批量設定'</code><code>,</code>

<code>            </code><code>width: 670, height: 600, iconCls: </code><code>'icon-group_key'</code><code>, </code><code>//cache: false,</code>

<code>                </code><code>roleGrid = top.$(</code><code>'#leftnav'</code><code>).datagrid({</code>

<code>                    </code><code>title: </code><code>'所有角色'</code><code>,</code>

<code>                    </code><code>url: </code><code>'Modules/handler/RoleAdminHandler.ashx?action=getrolelist'</code><code>,</code>

<code>                        </code><code>{ title: </code><code>'角色編碼'</code><code>, field: </code><code>'Code'</code><code>, width: 120, align: </code><code>'left'</code> <code>},</code>

<code>                        </code><code>{ title: </code><code>'角色名稱'</code><code>, field: </code><code>'RealName'</code><code>, width: 150, align: </code><code>'left'</code> <code>}</code>

<code>                        </code><code>curRoleModuleIds = [];</code>

<code>                        </code><code>var</code> <code>query = </code><code>'action=GetModuleByRoleId&amp;roleid='</code> <code>+ rowData.Id;</code>

<code>                            </code><code>curRoleModuleIds = data.split(</code><code>','</code><code>);</code>

<code>                            </code><code>for</code> <code>(</code><code>var</code> <code>i = 0; i &lt; curRoleModuleIds.length; i++) {</code>

<code>                                </code><code>var</code> <code>node = moduelTree.tree(</code><code>'find'</code><code>, curRoleModuleIds[i]);</code>

<code>                </code><code>while</code> <code>(flagRevoke &lt; curRoleModuleIds.length) {</code>

<code>                    </code><code>if</code> <code>($.inArray(curRoleModuleIds[flagRevoke], allSelectModuledIds) == -1) {</code>

<code>                        </code><code>revokeModuleIds += curRoleModuleIds[flagRevoke] + </code><code>','</code><code>; </code><code>//得到收回的權限清單</code>

<code>                    </code><code>if</code> <code>($.inArray(allSelectModuledIds[flagGrant], curRoleModuleIds) == -1) {</code>

<code>                </code><code>var</code> <code>query = </code><code>'action=SetRoleModulePermission&amp;roleid='</code> <code>+ top.$(</code><code>'#leftnav'</code><code>).datagrid(</code><code>'getSelected'</code><code>).Id + </code><code>'&amp;grantIds='</code> <code>+ grantModuleIds + </code><code>"&amp;revokeIds="</code> <code>+ revokeModuleIds;</code>

本文轉自yonghu86 51CTO部落格,原文連結:http://blog.51cto.com/yonghu/1334907,如需轉載請自行聯系原作者

繼續閱讀