溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享

發(fā)布時(shí)間:2020-07-07 12:10:10 來源:網(wǎng)絡(luò) 閱讀:2476 作者:yonghu86 欄目:web開發(fā)

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三

角色管理源碼分享

   在上兩篇文章

《使用Jquery+EasyUI進(jìn)行框架項(xiàng)目開發(fā)案例講解之一---員工管理源碼分享》

《使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之二---用戶管理源碼分享》

  我們分享了使用Jquery EasyUI來進(jìn)行UI布局等開發(fā)的相關(guān)方法,也許你在使用EasyUI的過程過更熟練,有更方便快捷的技巧,我強(qiáng)烈建議你可以分享出來,大家共同進(jìn)步、共同學(xué)習(xí),謝謝!

  接下來我分享“角色管理”模塊主要的核心代碼,角色管理主界面如下圖所示:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享

  首先是角色管理的UI界面aspx代碼如下:

<%@ Page Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="RoleAdmin.aspx.cs" Inherits="RDIFramework.WebApp.Modules.RoleAdmin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="../Scripts/jquery-checkbox.js" type="text/javascript"></script>
<script src="../Scripts/jQuery.Select.js" type="text/javascript"></script>
<script src="../Scripts/jquery.easyListSplitter.js" type="text/javascript"></script>
<script src="../Scripts/Business/RoleAdmin.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="toolbar">
    <%=base.BuildToolBarButtons() %> &nbsp;&nbsp;角色分類:&nbsp; <input id="txtCategory" name=Category type="text"  class="txt03" />&nbsp;&nbsp;<a id="a_search" class="easyui-linkbutton" plain="true" icon="icon-search">查詢</a>
</div>
<div id="scolldiv" >
    <input id="hidrolecategory" type="hidden" value="" runat="server" />
 <asp:GridView ID="gvRoleList" runat="server" AutoGenerateColumns="False" CssClass="grid2" Width="100%">
        <Columns>       
        <asp:TemplateField ItemStyle-Width="1px"  ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <input type="hidden" value="<%#Eval("Id") %>" />              
            </ItemTemplate>
        </asp:TemplateField>
        <%--<asp:TemplateField ItemStyle-Width="20px"  ItemStyle-HorizontalAlign="Center" >           
            <ItemTemplate>               
                <%#Container.DataItemIndex+1 %>               
            </ItemTemplate>       
        </asp:TemplateField>  --%>
            <asp:BoundField DataField="Code" HeaderText="角色編號(hào)" ItemStyle-Width = "120px"/>          
            <asp:BoundField DataField="RealName" HeaderText="角色名稱"  ItemStyle-Width = "150px"/>           
            <asp:BoundField DataField="Enabled" HeaderText="有效" ItemStyle-Width = "80px"/>         
            <asp:BoundField DataField="Description" HeaderText="描述"/>
            <asp:TemplateField HeaderText="管理" ItemStyle-Width="320px" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <a href="#" rel="edit" rid="<%#Eval("Id")%>"  <%if(!permissionEdit) {Response.Write("disabled");}%>   roleCategory ="<%#Eval("Category") %>" title="編輯當(dāng)前角色"><span class="icon icon-group_edit">&nbsp;</span>[修改]</a>&nbsp;
                    <a  rel="delete"  rid="<%#Eval("Id") %>"  <%if(permissionDelete != true) {Response.Write("disabled");}%>   title="刪除當(dāng)前角色"  ><span class="icon icon-group_delete">&nbsp;</span>[刪除]</a>&nbsp;
                    <a  rel="setuser"  rid="<%#Eval("Id") %>"  <%if(!permissionRoleUser) {Response.Write("disabled");}%>   title="設(shè)置當(dāng)前角色所擁有的用戶"><span class="icon icon-group_link">&nbsp;</span>[用戶]</a>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>
<div id="w"></div><div id="d"></div>
<script type="text/javascript">
    $(document).ready(function () {
        // 瀏覽器的高度和div的高度 
        var height = $(window).height();
        var divHeight = $("#scolldiv").height();
        //獲取div對(duì)象 
        var divh = $("#scolldiv").get(0);
        //div高度大于屏幕高度把屏幕高度賦給div,并出現(xiàn)滾動(dòng)條 
        if (divHeight > height - 40) {
            divh.style.height = height - 40;
            divh.style.overflow = "auto";
        }
        $('#txtCategory').combobox({
            url: 'handler/DataItemAdminHandler.ashx?action=GetCategory&categorycode=RoleCategory',
            method: 'get',
            valueField: 'ItemValue',
            textField: 'ItemName',
            editable: false,
            panelHeight: 'auto'
        });
    }); 
</script>
</asp:Content>


綁定當(dāng)前登錄用戶所擁有的功能按鈕列表代碼如下: 

/// <summary>
/// 獲得頁面的權(quán)限
/// </summary>
private void GetPermission()
{          
    this.permissionAdd = this.IsAuthorized("RoleManagement.Add");
    this.permissionEdit = this.IsAuthorized("RoleManagement.Edit");
    this.permissionExport = this.IsAuthorized("RoleManagement.Export");
    this.permissionDelete = this.IsAuthorized("RoleManagement.Delete");
    this.permissionRoleUser = this.IsAuthorized("RoleManagement.RoleUser");
}
/// <summary>
/// 加載工具欄
/// </summary>
/// <returns>工具欄HTML</returns>
public override string BuildToolBarButtons()
{
    StringBuilder sb = new StringBuilder();
    string linkbtn_template = "<a id=\"a_{0}\" class=\"easyui-linkbutton\" style=\"float:left\"  plain=\"true\" href=\"javascript:;\" icon=\"{1}\"  {2} title=\"{3}\">{4}</a>";
    sb.Append("<a id=\"a_refresh\" class=\"easyui-linkbutton\" style=\"float:left\"  plain=\"true\" href=\"javascript:;\" icon=\"icon-reload\"  title=\"重新加載\">刷新</a> ");
    sb.Append("<div class='datagrid-btn-separator'></div> ");
    sb.Append(string.Format(linkbtn_template, "add", "icon-group-add", permissionAdd ? "" : "disabled=\"True\"", "新增角色", "新增"));
    sb.Append(string.Format(linkbtn_template, "edit", "icon-group_edit", permissionEdit ? "" : "disabled=\"True\"", "修改選中角色", "修改"));
    sb.Append(string.Format(linkbtn_template, "del", "icon-group_delete", permissionDelete ? "" : "disabled=\"True\"", "刪除選中角色", "刪除"));
    sb.Append("<div class='datagrid-btn-separator'></div> ");
    sb.Append(string.Format(linkbtn_template, "roleuser", "icon-group_link", permissionRoleUser ? "" : "disabled=\"True\"", "設(shè)置當(dāng)前角色擁有的用戶", "用戶"));
    return sb.ToString();
}
private void InitGrid()
{   
    this.DTRole = base.GetRoleScope(this.PermissionItemCode);
    this.gvRoleList.DataSource = this.DTRole;
    this.gvRoleList.DataBind();
}

  核心業(yè)務(wù)邏輯完整JS代碼如下:

$(function () {
    addRole();
    editRole();
    delRole();
    $('#a_edit').click(function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        var i = $('table').data('tr_index');
        if (i > -1)
            $('.grid2 tr').eq(i).find("a[rel='edit']").click();
        else
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇要編輯的數(shù)據(jù).', permanent: false, type: 'warning' });
    });
    $('#a_del').click(function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        var i = $('table').data('tr_index');
        if (i > -1)
            $('.grid2 tr').eq(i).find("a[rel='delete']").click();
        else
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇要?jiǎng)h除的數(shù)據(jù).', permanent: false, type: 'warning' });
    });
    $('#a_roleuser').click(function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        var i = $('table').data('tr_index');
        if (i > -1)
            $('.grid2 tr').eq(i).find("a[rel='setuser']").click();
        else
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇要添加用戶的角色.', permanent: false, type: 'warning' });
    });
    $('#a_refresh').click(function () {
        window.location = 'RoleAdmin.aspx';
    });
    using('linkbutton', function () {
        $('#a_roleuser').linkbutton({ text: "成員" });
    });
    accreditUsers(); //授權(quán)角色包含的用戶
    searchUser();
    $('#txtCategory').combobox({
        onChange: function (newValue, oldValue) {
            $("#hidrolecategory").val(newValue)
        }
    })
});
function scripthtmlStr() {
    var html = '<form id="uiform"><table cellpadding=5 cellspacing=0 width=100% align="center" class="grid" border=0><tr><td align="right">'
    html += '角色編號(hào):</td><td align="left"><input id="txtCode"  name=Code type="text"  required="true"  class="txt03"/></td></tr><tr><td align="right">';
    html += '角色名稱:</td><td align="left"><input id="txtRealName"  name=RealName type="text"  required="true"  class="txt03"/></td></tr><tr><td align="right">';
    html += '角色分類:</td><td align="left"><input id="txtCategory" name=Category type="text"  required="true"  class="txt03" /></td></tr><tr><td align="right">';
    html += '有效性:</td><td align="left"><input id="chkEnabled" type="checkbox" name="Enabled" /><label>有效</label>&nbsp;&nbsp;<span >注:選中則啟用該角色。</span></td></tr><tr><td align="right"> ';
    html += '角色描述:</td><td align="left"><textarea rows="3" id="txtDescription"  name=Description  class="txt03"/></td></tr>';
    html += '</table></form>';
    return html;
}
function searchUser() {
    $('#a_search').click(function () {
        var vValue = $('#txtCategory').combobox('getValue') + '|' + $('#txtCategory').combobox('getText');
        top.$('#notity').jnotifyAddMessage({ text: vValue, permanent: false });
    });
}
function addRole() {
    $('#a_add').click(function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        top.$('#w').hWindow({ title: '新增角色', iconCls: 'icon-group-add', width: 450, height: 320, html: scripthtmlStr(), submit: function () {
            top.$('#txtCode').validatebox();
            top.$('#txtRealName').validatebox();
            top.$('#txtCategory').validatebox();
            var $txtrolecode = top.$('#txtCode');
            var $txtrolename = top.$('#txtRealName');
            var enabledSelected = top.$("#chkEnabled").attr("checked");
            var $txtdescription = top.$('#txtDescription');
            var vcategory = top.$('#txtCategory').combobox('getValue');
            if ($txtrolename.val() != '') {
                $.ajaxtext('handler/RoleAdminHandler.ashx?t=' + Math.random(), 'action=add&rolecode=' + $txtrolecode.val() + '&rolename=' + $txtrolename.val() + '&category=' + vcategory + '&enabled=' + enabledSelected + '&description=' + $txtdescription.val(), function (msg) {
                    if (msg == '1') {
                        top.$('#notity').jnotifyAddMessage({ text: '新增角色成功。', permanent: false });
                        top.$('#w').window('close');
                        window.location = 'RoleAdmin.aspx';
                    } else {
                        alert(msg);
                        return false;
                    }
                })
            } else {
                top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)輸入角色名稱.', permanent: false });
                top.$('#txtRealName').focus();
            }
            return false;
        }
        });
        bindCategory();
        top.$('#txtCode').focus();
        top.$('#chkEnabled').attr("checked", true);
    });
}
function editRole() {
    $("a[rel='edit']").click(function () {
        if ($('#a_edit').linkbutton('options').disabled == true) {
            return;
        }
        var id = $(this).attr('rid');
        var roleCategory = $(this).attr('roleCategory');
        var tds = $(this).parent().siblings();
        top.$('#w').hWindow({ title: '編輯角色信息', iconCls: 'icon-group_edit', width: 450, height: 320, html: scripthtmlStr(), submit: function () {
            var $txtrolecode = top.$('#txtCode');
            var $txtrealname = top.$('#txtRealName');
            var enabledSelected = top.$("#chkEnabled").attr("checked");
            var $txtdescription = top.$('#txtDescription');
            var vcategory = top.$('#txtCategory').combobox('getValue');
            if ($txtrealname.validatebox('isValid')) {
                $.ajaxtext('handler/RoleAdminHandler.ashx?n=' + Math.random(), 'action=edit&rolecode=' + $txtrolecode.val() + '&rolename=' + $txtrealname.val() + '&category=' + vcategory + '&enabled=' + enabledSelected + '&description=' + $.trim($txtdescription.val()) + '&roleid=' + id,
                function (msg) {
                    if (msg == '1') {
                        top.$('#notity').jnotifyAddMessage({ text: '角色信息修改成功.', permanent: false });
                        top.$('#w').window('close');
                        window.location = 'RoleAdmin.aspx';
                    } else {
                        alert(msg);
                        return false;
                    }
                })
            }
        }
        });
        top.$('#txtRealName').validatebox();
        top.$('#txtCode').val(tds.eq(1).html().replace('&nbsp;', ''));
        top.$('#txtRealName').val(tds.eq(2).html().replace('&nbsp;', ''));
        //top.$('#txtCategory').val(roleCategory);
        top.$('#chkEnabled').attr("checked", tds.eq(3).html().replace('&nbsp;', '') == "1");
        top.$('#txtDescription').val(tds.eq(4).html().replace('&nbsp;', ''));
        bindCategory();
        top.$('#txtCategory').combobox("setValue", roleCategory);
    })
}
function delRole() {
    $("a[rel='delete']").click(function () {
        if ($('#a_del').linkbutton('options').disabled == true) {
            return;
        }
        var rid = $(this).attr('rid');
        if (rid != '') {
            $.messager.confirm('詢問提示', '你確認(rèn)刪除當(dāng)前所選角色嗎?', function (data) {
             if (data) {   
                    $.ajax({
                        type: 'post',
                        url: 'handler/RoleAdminHandler.ashx?t=<%=Guid.NewGuid().ToString() %>',
                        data: 'action=delete&roleid=' + rid,
                        beforeSend: function () { $.showLoading(); },
                        complete: function () { $.hideLoading(); },
                        success: function (msg) {
                            if (msg == '1') {
                                top.$('#notity').jnotifyAddMessage({ text: '角色刪除成功.', permanent: false });
                                window.location = 'RoleAdmin.aspx';
                            }
                            else
                                top.$('#notity').jnotifyAddMessage({ text: '角色刪除失敗.', permanent: false, type: 'warning' });
                        }
                    });
                }
            });
                               
        }
        else {
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇要?jiǎng)h除的角色。', permanent: false, type: 'warning' });
        }
    });
}
function bindCategory() {
    top.$('#txtCategory').combobox({
        url: 'Modules/handler/DataItemAdminHandler.ashx?action=GetCategory&categorycode=RoleCategory',
        method: 'get',
        valueField: 'ItemValue',
        textField: 'ItemName',
        editable: false,
        panelHeight: 'auto'
    });
}
var formHtml = '<div ><span id="role_name" class="icon32 icon-group32" >角色名稱</span> </div>';
    formHtml += '<div >描述:<input id="txtroleremark" type="text" readonly=true class="txt02" ></div>';
    formHtml += '<div> 成員:</div>';
    formHtml += '<select id="user_groups" size="10" ></select>';
    formHtml += '<div ><a href="#" id="group_add" class="easyui-linkbutton" plain="true" iconCls="icon-group-add">添加</a>';
    formHtml += '<a href="#" class="easyui-linkbutton" id="group_delete" plain="true" iconCls="icon-group-delete">移除</a>';
    formHtml += '<a href="#" class="easyui-linkbutton" id="group_clear" plain="true" iconCls="icon-clear">清空</a></div>'
var userList = '<table id="sp" cellpadding=5 cellspacing=0 width=100% align="center" ><tr><td><ul class="ul_users checkbox"></ul></td></tr></table><p><input type="checkbox" id="chkall" ><label id="labchkall" for="chkall"><b>全選</b></label></p>';
//授權(quán)用戶
function accreditUsers() {  
    $("a[rel='setuser']").click(function () {
        if ($('#a_roleuser').linkbutton('options').disabled == true) {
            return;
        }
        var i = $('table').data('tr_index');
        if (i == undefined) {
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇角色.', permanent: false, type: 'warning' });
            return false;
        }
        var tds = $('.grid2 tr:eq(' + i + ') td');
        var rid = tds.eq(0).find(':hidden').val(); //rid = $(this).attr('rid');
        top.$('#w').hWindow({ html: formHtml, width: 500, height: 400, title: '角色用戶', iconCls: 'icon-group_link', submit: function () {
            var users = new Array();
            var count = top.$('#user_groups').get(0).options.length;
            for (var i = 0; i < count; i++) {
                users.push(top.$('#user_groups').get(0).options[i].value);
            }
            $.ajaxtext('handler/RoleAdminHandler.ashx', 'action=setusers&users=' + users + '&roleid=' + rid, function (msg) {
                if (msg == "1") {
                    top.$('#notity').jnotifyAddMessage({ text: '設(shè)置成功。', permanent: false, type: 'message' });
                }
                else
                    alert(msg);
                top.$('#w').window('close');
            });
            return false;
        }
        });
        top.$('a.easyui-linkbutton').linkbutton({ disabled: false });
        top.$('#role_name').text(tds.eq(2).text());
        top.$('#txtroleremark').val(tds.eq(4).text());
        $.getJSON('handler/RoleAdminHandler.ashx?n=' + Math.random(), '&action=usersinrole&roleid=' + rid, function (json) {
            $.each(json, function (i, n) {
                top.$('#user_groups').append('<option value="' + n.Id + '">' + n.UserName + ' | ' + n.RealName + '</option>');
            });
        });
        top.$('#group_add').click(function () {
            top.$('#d').hDialog({ html: userList, title: '選取用戶', iconCls: 'icon-users', width: 800, height: 600,
                submit: function () {
                    var selectedUids = '';
                    top.$('#sp :checked').each(function () { //匹配所有sp中被選中的元素(checkbox中被選中的)
                        if (top.$(this).is(':checked'))
                            selectedUids += top.$(this).val() + ',';
                    });
                    if (selectedUids != '')
                        selectedUids = selectedUids.substr(0, selectedUids.length - 1);
                    if (selectedUids.length == 0) {
                        $.messager.alert('請(qǐng)至少選擇一個(gè)用戶!', msg, 'warning');
                        return false;
                    } else {
                        var users = top.$('#sp').data('allusers');
                        var selarr = getSelectedUsers(users, selectedUids);
                        top.$('#user_groups').empty();
                        top.$('#sp').removeData('allusers');
                        $.each(selarr, function (i, n) {
                            top.$('#user_groups').append('<option value="' + n.Id + '">' + n.UserName + ' | ' + n.RealName + '</option>');
                        });
                        top.$('#d').dialog("close");
                    }
                }
            });
            var lis = '';
            $.getJSON('handler/UserAdminHandler.ashx?n=' + Math.random(), '', function (json) {
                $.each(json, function (i, n) {
                    lis += '<li><input type="checkbox" value="' + n.Id + '" /><label>' + n.UserName + ' | ' + n.RealName + '</label></li>';
                });
                top.$('.ul_users').empty().append(lis);
                top.$('#sp').data('allusers', json);
            });
            top.$('#labchkall').click(function () {
                var flag = $(this).prev().is(':checked');
                var pers = $(this).parent().parent().prev();
                if (!flag) {
                    top.$(":checkbox", '#sp').attr("checked", true);
                }
                else {
                    top.$(":checkbox", '#sp').attr("checked", false);
                }
            });
        });
        top.$('#group_delete').click(function () {
            var i = top.$('#user_groups').get(0).selectedIndex;
            if (i > -1) {
                var uid = top.$('#user_groups option:selected').val(); //選中的值或 top.$("#user_groups").find("option:selected").val();
                var uname = top.$('#user_groups option:selected').text(); //選中的文本 或top.$("#user_groups").find("option:selected").text();
                top.$('#user_groups').get(0).remove(i);
                $.ajaxtext('handler/RoleAdminHandler.ashx', 'action=removeuserfromrole&uid=' + uid + '&roleid=' + rid, function (msg) {
                    if (msg == "1") {
                        top.$('#notity').jnotifyAddMessage({ text: '移除成功。', permanent: false, type: 'message' });
                    }
                    else {
                        top.$.messager.alert('提示信息', msg, 'warning');
                    }
                });
            }
            else {
                top.$.messager.alert("操作提示", "請(qǐng)選擇要移除的用戶!", "info");
            }
        });
        top.$('#group_clear').click(function () {
//            var count = $("#user_groups option").length
//            if (count <= 0) {
//                top.$.messager.alert("操作提示", "當(dāng)前角色沒有用戶!", "info");
//                return;
//            }
            top.$.messager.confirm('詢問提示', '確認(rèn)要清除所有用戶嗎?', function (data) {
                if (data) {
                    top.$('#user_groups').empty();
                }
            });
            return false;
        });
    });
}
function getSelectedUsers(users, selecedVals) {
    var arrUserid = eval('[' + selecedVals + ']');
    var arr = new Array();
    $.each(users, function (i, n) {
        if ($.inArray(n.Id, arrUserid) > -1)
            arr.push(n);
    });
    return arr;
}


  角色添加界面如下:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享



角色修改界面:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享


角色用戶設(shè)置界面:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享


在上圖中,我們可以添加、移除、清空當(dāng)前角色包含的用戶。

   選擇添加,打開“選取用戶”窗口,如下圖所示:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享

角色用戶設(shè)置及用戶選擇界面JS代碼如下:

var formHtml = '<div ><span id="role_name" class="icon32 icon-group32" >角色名稱</span> </div>';
    formHtml += '<div >描述:<input id="txtroleremark" type="text" readonly=true class="txt02" ></div>';
    formHtml += '<div> 成員:</div>';
    formHtml += '<select id="user_groups" size="10" ></select>';
    formHtml += '<div ><a href="#" id="group_add" class="easyui-linkbutton" plain="true" iconCls="icon-group-add">添加</a>';
    formHtml += '<a href="#" class="easyui-linkbutton" id="group_delete" plain="true" iconCls="icon-group-delete">移除</a>';
    formHtml += '<a href="#" class="easyui-linkbutton" id="group_clear" plain="true" iconCls="icon-clear">清空</a></div>'
var userList = '<table id="sp" cellpadding=5 cellspacing=0 width=100% align="center" ><tr><td><ul class="ul_users checkbox"></ul></td></tr></table><p><input type="checkbox" id="chkall" ><label id="labchkall" for="chkall"><b>全選</b></label></p>';
//授權(quán)用戶
function accreditUsers() {  
    $("a[rel='setuser']").click(function () {
        if ($('#a_roleuser').linkbutton('options').disabled == true) {
            return;
        }
        var i = $('table').data('tr_index');
        if (i == undefined) {
            top.$('#notity').jnotifyAddMessage({ text: '請(qǐng)選擇角色.', permanent: false, type: 'warning' });
            return false;
        }
        var tds = $('.grid2 tr:eq(' + i + ') td');
        var rid = tds.eq(0).find(':hidden').val(); //rid = $(this).attr('rid');
        top.$('#w').hWindow({ html: formHtml, width: 500, height: 400, title: '角色用戶', iconCls: 'icon-group_link', submit: function () {
            var users = new Array();
            var count = top.$('#user_groups').get(0).options.length;
            for (var i = 0; i < count; i++) {
                users.push(top.$('#user_groups').get(0).options[i].value);
            }
            $.ajaxtext('handler/RoleAdminHandler.ashx', 'action=setusers&users=' + users + '&roleid=' + rid, function (msg) {
                if (msg == "1") {
                    top.$('#notity').jnotifyAddMessage({ text: '設(shè)置成功。', permanent: false, type: 'message' });
                }
                else
                    alert(msg);
                top.$('#w').window('close');
            });
            return false;
        }
        });
        top.$('a.easyui-linkbutton').linkbutton({ disabled: false });
        top.$('#role_name').text(tds.eq(2).text());
        top.$('#txtroleremark').val(tds.eq(4).text());
        $.getJSON('handler/RoleAdminHandler.ashx?n=' + Math.random(), '&action=usersinrole&roleid=' + rid, function (json) {
            $.each(json, function (i, n) {
                top.$('#user_groups').append('<option value="' + n.Id + '">' + n.UserName + ' | ' + n.RealName + '</option>');
            });
        });
        top.$('#group_add').click(function () {
            top.$('#d').hDialog({ html: userList, title: '選取用戶', iconCls: 'icon-users', width: 800, height: 600,
                submit: function () {
                    var selectedUids = '';
                    top.$('#sp :checked').each(function () { //匹配所有sp中被選中的元素(checkbox中被選中的)
                        if (top.$(this).is(':checked'))
                            selectedUids += top.$(this).val() + ',';
                    });
                    if (selectedUids != '')
                        selectedUids = selectedUids.substr(0, selectedUids.length - 1);
                    if (selectedUids.length == 0) {
                        $.messager.alert('請(qǐng)至少選擇一個(gè)用戶!', msg, 'warning');
                        return false;
                    } else {
                        var users = top.$('#sp').data('allusers');
                        var selarr = getSelectedUsers(users, selectedUids);
                        top.$('#user_groups').empty();
                        top.$('#sp').removeData('allusers');
                        $.each(selarr, function (i, n) {
                            top.$('#user_groups').append('<option value="' + n.Id + '">' + n.UserName + ' | ' + n.RealName + '</option>');
                        });
                        top.$('#d').dialog("close");
                    }
                }
            });
            var lis = '';
            $.getJSON('handler/UserAdminHandler.ashx?n=' + Math.random(), '', function (json) {
                $.each(json, function (i, n) {
                    lis += '<li><input type="checkbox" value="' + n.Id + '" /><label>' + n.UserName + ' | ' + n.RealName + '</label></li>';
                });
                top.$('.ul_users').empty().append(lis);
                top.$('#sp').data('allusers', json);
            });
            top.$('#labchkall').click(function () {
                var flag = $(this).prev().is(':checked');
                var pers = $(this).parent().parent().prev();
                if (!flag) {
                    top.$(":checkbox", '#sp').attr("checked", true);
                }
                else {
                    top.$(":checkbox", '#sp').attr("checked", false);
                }
            });
        });
        top.$('#group_delete').click(function () {
            var i = top.$('#user_groups').get(0).selectedIndex;
            if (i > -1) {
                var uid = top.$('#user_groups option:selected').val(); //選中的值或 top.$("#user_groups").find("option:selected").val();
                var uname = top.$('#user_groups option:selected').text(); //選中的文本 或top.$("#user_groups").find("option:selected").text();
                top.$('#user_groups').get(0).remove(i);
                $.ajaxtext('handler/RoleAdminHandler.ashx', 'action=removeuserfromrole&uid=' + uid + '&roleid=' + rid, function (msg) {
                    if (msg == "1") {
                        top.$('#notity').jnotifyAddMessage({ text: '移除成功。', permanent: false, type: 'message' });
                    }
                    else {
                        top.$.messager.alert('提示信息', msg, 'warning');
                    }
                });
            }
            else {
                top.$.messager.alert("操作提示", "請(qǐng)選擇要移除的用戶!", "info");
            }
        });
        top.$('#group_clear').click(function () {
//            var count = $("#user_groups option").length
//            if (count <= 0) {
//                top.$.messager.alert("操作提示", "當(dāng)前角色沒有用戶!", "info");
//                return;
//            }
            top.$.messager.confirm('詢問提示', '確認(rèn)要清除所有用戶嗎?', function (data) {
                if (data) {
                    top.$('#user_groups').empty();
                }
            });
            return false;
        });
    });
}

  特別說明一下,在選取用戶界面,使用的是checkbox控件,得到選中的checkbox,是使用下面的實(shí)例代碼:  

<input id="checkbox1" type="checkbox" checked>
<input id="checkbox2" type="checkbox>
$("#checkbox1").is(":checked") // true
$("#checkbox2").is(":checked") // false
//注意不是使用下面的方法
$("#checkbox1").attr("checked") // checked
$("#checkbox2").attr("checked") // undefined
  角色管理一般處理程序如下:

使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享


相關(guān)資源分享

1、基于.NET的快速信息化系統(tǒng)開發(fā)整合框架 —RDIFramework.NET—系統(tǒng)目錄

2、Jquery EasyUI官方網(wǎng)站

3、Jquery學(xué)習(xí)官方網(wǎng)站

4、Jquery EasyUI本地實(shí)例文件(如果嫌官網(wǎng)速度過慢,可以下載這個(gè)看)

5、Jquery權(quán)威指南下載

6、Jquery權(quán)威指南源代碼下載

7、Jquery EasyUI 1.3中文.chm文件下載

8、JavaScript權(quán)威指南(第六版)中文版(強(qiáng)烈推薦)在線觀看


作者: EricHu
出處: http://www.cnblogs.com/huyong
微博: 騰訊
Email: 406590790@qq.com
QQ 交流:406590790 
QQ 群:237326100 平臺(tái)博客: 【CSDN】http://blog.csdn.net/chinahuyong 【CNBLOGS】http://www.cnblogs.com/huyong 關(guān)于作者:高級(jí)工程師、信息系統(tǒng)項(xiàng)目管理師、DBA。專注于微軟平臺(tái)項(xiàng)目架構(gòu)、管理和企業(yè)解決方案,多年項(xiàng)目開發(fā)與管理經(jīng)驗(yàn),曾多次組織并開發(fā)多個(gè)大型項(xiàng)目,精通DotNet,DB(SqlServer、Oracle等)技術(shù)。熟悉Java、Delhpi及Linux操作系統(tǒng),有扎實(shí)的網(wǎng)絡(luò)知識(shí)。在面向?qū)ο蟆⒚嫦蚍?wù)以及數(shù)據(jù)庫領(lǐng)域有一定的造詣。 如有問題或建議,請(qǐng)多多賜教! 本文版權(quán)歸作者和CNBLOGS博客共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過郵箱或QQ 聯(lián)系我,非常感謝。


使用Jquery+EasyUI 進(jìn)行框架項(xiàng)目開發(fā)案例講解之三---角色管理源碼分享

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI