在检查重复用户名时,如何在jqGrid的添加/编辑对话框中显示错误消息?

在检查重复用户名时,如何在jqGrid的添加/编辑对话框中显示错误消息?,jqgrid,Jqgrid,我正在用户管理的添加/编辑操作中检查重复用户名,并处理代码,如下所示: [AcceptVerbs(HttpVerbs.Post)] public ActionResult InsertUser(UserViewModel viewModel) { var user = new User { UserID = viewModel.UserID,

我正在用户管理的添加/编辑操作中检查重复用户名,并处理代码,如下所示:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult InsertUser(UserViewModel viewModel)
    {
        var user = new User
                       {
                           UserID = viewModel.UserID,
                           UserName = viewModel.UserName,
                           //Password = "123456",
                           Password = viewModel.Password,
                           FullName = viewModel.FullName,
                           Email = viewModel.Email,
                           CreationDate = DateTime.Now,
                           IsActive = viewModel.IsActive
                       };

        //Also check here if user already exist, usename shud be unique.
        bool isAlreadyExist = new UserManagement().CheckUserName(user.UserName);

        if(isAlreadyExist)
        {
            return Json(false);
        }

        try
        {
            new UserManagement().Save(user);
        }
        catch (Exception)
        {
            return Json(false);
        }

        return Json(true);
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult UpdateUser(UserViewModel viewModel)
    {
        User user = new UserManagement().GetUserBy(viewModel.UserID);


        if (!viewModel.UserName.TrimEnd().Equals(user.UserName.TrimEnd()))
        {
            bool isAlreadyExist = new UserManagement().CheckUserName(viewModel.UserName);

            if (isAlreadyExist)
            {
                return Json(false);
            }

        }

        user.UserName = viewModel.UserName;
        user.Password = viewModel.Password;
        user.FullName = viewModel.FullName;
        user.Email = viewModel.Email;
        user.IsActive = viewModel.IsActive;

        try
        {
            new UserManagement().Save(user);
        }
        catch
        {
            return Json(false);
        }

        return Json(true);
    }
 <script type="text/javascript">
    var arrayIds = [];
    var roleDropDown = "";

    $(document).ready(function () {
        $(".ui-dropdownchecklist > div > div > .active").live("change", function () {
            var parentId = $(this).parent().parent().parent().attr("Id");
            parentId = parentId.substring(0, parentId.length - 4);
            $("#" + parentId + " > span > span").text("Assigning...").css("color", "#666666");

            //Set Variable to identify Assign or Deassign Role to User
            var checked = false;
            if ($(this).attr("checked") == "checked") {
                checked = true;
            }
            //Set RoleId
            var role = $(this).val();
            //Set UserId
            var user = $(this).attr('id');

            //Start Ajax Call
            $.ajax({
                url: '@Url.Action("ManageUserRoles", "Role")',
                type: "GET",
                cache: false,
                data: { userid: user, roleid: role, chked: checked },
                //async: false,
                success: function () {
                },
                complete: function () {
                    $("#" + parentId + " > span > span").text("Assign Roles").css("color", "#222222");
                }
            });
            //End Ajax Call
        });

        roleDropDown = "<select id='_RoleID' multiple='true' style='Display: none;'>";
        $.ajax({
            url: '@Url.Action("GetAllReoles", "Role")',
            type: "GET",
            cache: true,
            async: false,
            success: function (countiesJson) {
                $.each(countiesJson, function (index, optionData) {
                    roleDropDown += "<option value='" + optionData.RoleID + "'>" + optionData.RoleName + "</option>";
                });
            }
        });
        roleDropDown += "</select>";

        var userGrid = $('#jqgUsers');
        var pages = [];
        var MAX_PAGERS = 2;

        $('#jqgUsers').jqGrid({
            //url from wich data should be requested
            url: '@Url.Action("FetchUsers")',
            //type of data
            datatype: 'json',
            cache: false,
            //url access method type
            mtype: 'POST',
            postData: {
                UserName: function () { return $('#UserName1').val(); },
                FullName: function () { return $('#FullName1').val(); },
                Email: function () { return $('#Email1').val(); },
                IsActive: function () { return $('#IsActive1 option:selected').val(); },
                FromDate: function () { return $('#FromDate').val(); },
                ToDate: function () { return $('#ToDate').val(); }
            },
            colNames: ['User ID', 'User Name', 'Password', 'Full Name', 'Email', 'Active', 'Roles', ''],
            //columns model
            colModel: [
                        { name: 'UserID', index: 'UserID', hidden: true, align: 'left', editable: false },
                        { name: 'UserName', index: 'UserName', width: 252, align: 'left', editable: true, edittype: 'text', editoptions: { maxlength: 50 }, editrules: { required: true} },
                        { name: 'Password', index: 'Password', hidden: true, width: 175, align: 'left', editable: true, edittype: 'password', editoptions: { maxlength: 20 }, editrules: { required: true, edithidden: true} },
                        { name: 'FullName', index: 'FullName', width: 245, align: 'left', editable: true, edittype: 'text', editoptions: { maxlength: 100 }, editrules: { required: true} },
                        { name: 'Email', index: 'Email', width: 247, align: 'left', formatter: emailFormatter, sortable: true, editable: true, edittype: 'custom', editoptions: { custom_element: mymailelem, custom_value: mymailvalue }, editrules: { required: true, email: true} },
                        { name: 'IsActive', index: 'IsActive', width: 85, formatter: imgformatter, sortable: true, align: 'center',
                            editable: true, edittype: 'custom', editoptions: { custom_element: myelem, custom_value: myvalue }
                        },
                        { name: 'role', index: 'role', width: 120, formatter: RoleCobFormatter, sortable: true, align: 'left' },
                        { name: 'act', index: 'act', width: 55, align: 'center', sortable: false, formatter: 'actions',
                            formatoptions: {
                                keys: true,
                                editformbutton: true,
                                delbutton: true,
                                editOptions: {
                                    url: '@Url.Action("UpdateUser")',
                                    closeAfterEdit: true
                                },
                                delOptions: {
                                    url: '@Url.Action("DeleteUser")'
                                }
                            }
                        }
                      ],
            pager: $('#jqgpUsers'),
            rowNum: 10,
            pginput: false,
            rowList: [10, 20, 50, 100],
            sortname: 'UserID',
            sortorder: 'asc',
            viewrecords: true,
            height: 'auto',
            loadComplete: function () {

                if (pages[$('#jqgUsers').getGridParam('page')] != null) {
                    var selRows = pages[$('#jqgUsers').getGridParam('page')];
                    var i;
                    var limit = selRows.length;
                    for (i = 0; i < limit; i++) {
                        $('#jqgUsers').setSelection(selRows[i], true);
                    }
                }
                //-------Start Paging Style
                var i, myPageRefresh = function (e) {
                    var newPage = $(e.target).text();
                    userGrid.trigger("reloadGrid", [{ page: newPage}]);
                    e.preventDefault();
                };

                //variables
                var currentPage = this.p.page;
                var startPage;

                var totalPages = this.p.lastpage;
                if (this.p.records == 0) {
                    totalPages = 0;
                }

                if (this.p.page - MAX_PAGERS <= 0) {
                    startPage = 1;
                }
                else {
                    startPage = this.p.page - MAX_PAGERS;
                }
                var lastPage;
                if (this.p.page + MAX_PAGERS >= totalPages) {
                    lastPage = totalPages;
                }
                else {
                    lastPage = this.p.page + MAX_PAGERS;
                }

                $(userGrid[0].p.pager + '_center td.myPager').remove();
                //---- Variables End
                if (totalPages > 1) {

                    var pagerPrevTD = $('<td>', { "class": "myPager" }), prevPagesIncluded = 0,
                    pagerNextTD = $('<td>', { "class": "myPager" }), nextPagesIncluded = 0,
                    totalStyle = userGrid[0].p.pginput === false,
                    startIndex = totalStyle ? this.p.page - MAX_PAGERS * 2 : this.p.page - MAX_PAGERS;

                    for (i = startPage; i <= lastPage; i++) {
                        if (i <= 0) { continue; }
                        var link = $('<a>', { href: '#', click: myPageRefresh, "class": "Paging" });
                        if (i == this.p.page) { link.attr("class", "selected"); }

                        link.text(String(i));

                        if (i < this.p.page || totalStyle) {
                            pagerPrevTD.append(link);
                            prevPagesIncluded++;
                        } else {
                            if (nextPagesIncluded > 0 || (totalStyle && prevPagesIncluded > 0)) { pagerNextTD.append('<span>,&nbsp;</span>'); }
                            pagerNextTD.append(link);
                            nextPagesIncluded++;
                        }
                    }
                    if (prevPagesIncluded > 0) {
                        $(userGrid[0].p.pager + '_center td[id^="prev"]').after(pagerPrevTD);
                    }
                    if (nextPagesIncluded > 0) {
                        $(userGrid[0].p.pager + '_center td[id^="next"]').before(pagerNextTD);
                    }
                }
                else {
                    //$('#first_jqgpFlagger').unbind();
                    $('#first_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#prev_jqgpFlagger').unbind();
                    $('#prev_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#next_jqgpFlagger').unbind();
                    $('#next_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#last_jqgpFlagger').unbind();
                    $('#last_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                }
                //-------End Paging Style
            },
            gridComplete: function () {
                $.each(arrayIds, function (index, optionData) {
                    $.ajax({
                        url: '@Url.Action("GetRolesbyUserId", "Role")' + '/' + optionData.substring(4),
                        type: "GET",
                        cache: false,
                        async: false,
                        success: function (countiesJson) {
                            $.each(countiesJson, function (index, optionItem) {
                                $("#" + optionData + " option[value='" + optionItem.RoleID.toString() + "']").attr("selected", "selected");
                            });
                        }
                    });
                    if ($("#ddcl-" + optionData).length > 0) {
                        $("#ddcl-" + optionData).remove();
                        $("#ddcl-" + optionData + "-ddw").remove();
                    }
                    $("#" + optionData).dropdownchecklist({ emptyText: "Assign Roles" });
                }); //End Each Loop
            }
        });
        $('#jqgUsers').jqGrid('navGrid', '#jqgpUsers',
            { add: true, del: false, edit: false, search: false },
            { width: '250', closeAfterEdit: true, url: '@Url.Action("UpdateUser")' },
            { width: '250', closeAfterAdd: true, url: '@Url.Action("InsertUser")' },
            { width: '250', url: '@Url.Action("DeleteUser")' });

        $('#CustomPanel').appendTo('.ui-jqgrid-hbox');
        $(".ui-jqgrid-sortable").attr("style", "height: 32px");

        $('#UserName1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#FullName1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#Email1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#IsActive1').change(function () {
            $('#jqgUsers').trigger("reloadGrid");

        });

        $('#btnClear').click(function () {
            $('#UserName1').val('');
            $('#FullName1').val('');
            $('#Email1').val('');
            $('#IsActive1 option:eq(0)').attr('selected', 'selected');
            $('#jqgUsers').trigger("reloadGrid");
        });

    });

    function emailFormatter(cellvalue) {
        email = "<a href='mailto:" + cellvalue + "'>" + cellvalue + "</a>";
        return email;
    }

    function mymailelem(value, options) {
        var e1 = document.createElement("input");
        e1.type = "text";
        if (value != "") {
            value = value.split('>')[1].split('<')[0];
        }
        e1.value = value;
        z = document.createAttribute('class');
        z.value = 'FormElement ui-widget-content ui-corner-all';
        e1.setAttributeNode(z);
        return e1;
    }

    function mymailvalue(elem, operation, value) {
        if (value != undefined) {
            value = value.split('>')[1].split('<')[0];
        }
        else {
            value = '';
        }
        if (operation === 'get') {
            return $(elem)[0].value;
        } else if (operation === 'set') {
            $(elem).val(value);
        }
    }

    function imgformatter(cellvalue, options, rowObject) {
        if (cellvalue == 'True') {
            ActiveImage = "<img border='0' src='../../Content/images/tick.png' alt='' width='16px' height='16px' style='padding-top: 7px;'  />";
        }
        else {
            ActiveImage = "<img border='0' src='../../Content/images/cross.png' alt='' width='16px' height='16px' style='padding-top: 7px;'  />";
        }
        return ActiveImage;
    }

    function RoleCobFormatter(cellvalue, options, rowObject) {
        var id = "sel-" + options.rowId.toString();
        arrayIds.push(id);
        var retVal = roleDropDown.replace('_RoleID', id);
        return retVal;
    }

    function myelem(value, options) {
        var el = document.createElement("input");
        el.type = "checkbox";
        if (value.indexOf('tick') != -1) {
            value = 'checked';
            el.checked = 'checked';
        }
        else {
            value = '';
            el.checked = '';
        }
        return el;
    }

    function myvalue(elem, operation, value) {
        if (value != undefined && value.indexOf('tick') != -1) {
            value = 'checked';
        }
        else {
            value = '';
        }
        if (operation === 'get') {
            //                return $(elem).find("input").val();
            return $(elem).is(':checked');
        } else if (operation === 'set') {
            //                $('input', elem).val(value);
            //            $('input', elem).attr('checked', value);
            $(elem)[0].checked = value;
        }
    }

</script>
.cshtml中的脚本代码如下所示:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult InsertUser(UserViewModel viewModel)
    {
        var user = new User
                       {
                           UserID = viewModel.UserID,
                           UserName = viewModel.UserName,
                           //Password = "123456",
                           Password = viewModel.Password,
                           FullName = viewModel.FullName,
                           Email = viewModel.Email,
                           CreationDate = DateTime.Now,
                           IsActive = viewModel.IsActive
                       };

        //Also check here if user already exist, usename shud be unique.
        bool isAlreadyExist = new UserManagement().CheckUserName(user.UserName);

        if(isAlreadyExist)
        {
            return Json(false);
        }

        try
        {
            new UserManagement().Save(user);
        }
        catch (Exception)
        {
            return Json(false);
        }

        return Json(true);
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult UpdateUser(UserViewModel viewModel)
    {
        User user = new UserManagement().GetUserBy(viewModel.UserID);


        if (!viewModel.UserName.TrimEnd().Equals(user.UserName.TrimEnd()))
        {
            bool isAlreadyExist = new UserManagement().CheckUserName(viewModel.UserName);

            if (isAlreadyExist)
            {
                return Json(false);
            }

        }

        user.UserName = viewModel.UserName;
        user.Password = viewModel.Password;
        user.FullName = viewModel.FullName;
        user.Email = viewModel.Email;
        user.IsActive = viewModel.IsActive;

        try
        {
            new UserManagement().Save(user);
        }
        catch
        {
            return Json(false);
        }

        return Json(true);
    }
 <script type="text/javascript">
    var arrayIds = [];
    var roleDropDown = "";

    $(document).ready(function () {
        $(".ui-dropdownchecklist > div > div > .active").live("change", function () {
            var parentId = $(this).parent().parent().parent().attr("Id");
            parentId = parentId.substring(0, parentId.length - 4);
            $("#" + parentId + " > span > span").text("Assigning...").css("color", "#666666");

            //Set Variable to identify Assign or Deassign Role to User
            var checked = false;
            if ($(this).attr("checked") == "checked") {
                checked = true;
            }
            //Set RoleId
            var role = $(this).val();
            //Set UserId
            var user = $(this).attr('id');

            //Start Ajax Call
            $.ajax({
                url: '@Url.Action("ManageUserRoles", "Role")',
                type: "GET",
                cache: false,
                data: { userid: user, roleid: role, chked: checked },
                //async: false,
                success: function () {
                },
                complete: function () {
                    $("#" + parentId + " > span > span").text("Assign Roles").css("color", "#222222");
                }
            });
            //End Ajax Call
        });

        roleDropDown = "<select id='_RoleID' multiple='true' style='Display: none;'>";
        $.ajax({
            url: '@Url.Action("GetAllReoles", "Role")',
            type: "GET",
            cache: true,
            async: false,
            success: function (countiesJson) {
                $.each(countiesJson, function (index, optionData) {
                    roleDropDown += "<option value='" + optionData.RoleID + "'>" + optionData.RoleName + "</option>";
                });
            }
        });
        roleDropDown += "</select>";

        var userGrid = $('#jqgUsers');
        var pages = [];
        var MAX_PAGERS = 2;

        $('#jqgUsers').jqGrid({
            //url from wich data should be requested
            url: '@Url.Action("FetchUsers")',
            //type of data
            datatype: 'json',
            cache: false,
            //url access method type
            mtype: 'POST',
            postData: {
                UserName: function () { return $('#UserName1').val(); },
                FullName: function () { return $('#FullName1').val(); },
                Email: function () { return $('#Email1').val(); },
                IsActive: function () { return $('#IsActive1 option:selected').val(); },
                FromDate: function () { return $('#FromDate').val(); },
                ToDate: function () { return $('#ToDate').val(); }
            },
            colNames: ['User ID', 'User Name', 'Password', 'Full Name', 'Email', 'Active', 'Roles', ''],
            //columns model
            colModel: [
                        { name: 'UserID', index: 'UserID', hidden: true, align: 'left', editable: false },
                        { name: 'UserName', index: 'UserName', width: 252, align: 'left', editable: true, edittype: 'text', editoptions: { maxlength: 50 }, editrules: { required: true} },
                        { name: 'Password', index: 'Password', hidden: true, width: 175, align: 'left', editable: true, edittype: 'password', editoptions: { maxlength: 20 }, editrules: { required: true, edithidden: true} },
                        { name: 'FullName', index: 'FullName', width: 245, align: 'left', editable: true, edittype: 'text', editoptions: { maxlength: 100 }, editrules: { required: true} },
                        { name: 'Email', index: 'Email', width: 247, align: 'left', formatter: emailFormatter, sortable: true, editable: true, edittype: 'custom', editoptions: { custom_element: mymailelem, custom_value: mymailvalue }, editrules: { required: true, email: true} },
                        { name: 'IsActive', index: 'IsActive', width: 85, formatter: imgformatter, sortable: true, align: 'center',
                            editable: true, edittype: 'custom', editoptions: { custom_element: myelem, custom_value: myvalue }
                        },
                        { name: 'role', index: 'role', width: 120, formatter: RoleCobFormatter, sortable: true, align: 'left' },
                        { name: 'act', index: 'act', width: 55, align: 'center', sortable: false, formatter: 'actions',
                            formatoptions: {
                                keys: true,
                                editformbutton: true,
                                delbutton: true,
                                editOptions: {
                                    url: '@Url.Action("UpdateUser")',
                                    closeAfterEdit: true
                                },
                                delOptions: {
                                    url: '@Url.Action("DeleteUser")'
                                }
                            }
                        }
                      ],
            pager: $('#jqgpUsers'),
            rowNum: 10,
            pginput: false,
            rowList: [10, 20, 50, 100],
            sortname: 'UserID',
            sortorder: 'asc',
            viewrecords: true,
            height: 'auto',
            loadComplete: function () {

                if (pages[$('#jqgUsers').getGridParam('page')] != null) {
                    var selRows = pages[$('#jqgUsers').getGridParam('page')];
                    var i;
                    var limit = selRows.length;
                    for (i = 0; i < limit; i++) {
                        $('#jqgUsers').setSelection(selRows[i], true);
                    }
                }
                //-------Start Paging Style
                var i, myPageRefresh = function (e) {
                    var newPage = $(e.target).text();
                    userGrid.trigger("reloadGrid", [{ page: newPage}]);
                    e.preventDefault();
                };

                //variables
                var currentPage = this.p.page;
                var startPage;

                var totalPages = this.p.lastpage;
                if (this.p.records == 0) {
                    totalPages = 0;
                }

                if (this.p.page - MAX_PAGERS <= 0) {
                    startPage = 1;
                }
                else {
                    startPage = this.p.page - MAX_PAGERS;
                }
                var lastPage;
                if (this.p.page + MAX_PAGERS >= totalPages) {
                    lastPage = totalPages;
                }
                else {
                    lastPage = this.p.page + MAX_PAGERS;
                }

                $(userGrid[0].p.pager + '_center td.myPager').remove();
                //---- Variables End
                if (totalPages > 1) {

                    var pagerPrevTD = $('<td>', { "class": "myPager" }), prevPagesIncluded = 0,
                    pagerNextTD = $('<td>', { "class": "myPager" }), nextPagesIncluded = 0,
                    totalStyle = userGrid[0].p.pginput === false,
                    startIndex = totalStyle ? this.p.page - MAX_PAGERS * 2 : this.p.page - MAX_PAGERS;

                    for (i = startPage; i <= lastPage; i++) {
                        if (i <= 0) { continue; }
                        var link = $('<a>', { href: '#', click: myPageRefresh, "class": "Paging" });
                        if (i == this.p.page) { link.attr("class", "selected"); }

                        link.text(String(i));

                        if (i < this.p.page || totalStyle) {
                            pagerPrevTD.append(link);
                            prevPagesIncluded++;
                        } else {
                            if (nextPagesIncluded > 0 || (totalStyle && prevPagesIncluded > 0)) { pagerNextTD.append('<span>,&nbsp;</span>'); }
                            pagerNextTD.append(link);
                            nextPagesIncluded++;
                        }
                    }
                    if (prevPagesIncluded > 0) {
                        $(userGrid[0].p.pager + '_center td[id^="prev"]').after(pagerPrevTD);
                    }
                    if (nextPagesIncluded > 0) {
                        $(userGrid[0].p.pager + '_center td[id^="next"]').before(pagerNextTD);
                    }
                }
                else {
                    //$('#first_jqgpFlagger').unbind();
                    $('#first_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#prev_jqgpFlagger').unbind();
                    $('#prev_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#next_jqgpFlagger').unbind();
                    $('#next_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                    //$('#last_jqgpFlagger').unbind();
                    $('#last_jqgpUsers').attr('class', 'ui-corner-all ui-state-disabled');
                }
                //-------End Paging Style
            },
            gridComplete: function () {
                $.each(arrayIds, function (index, optionData) {
                    $.ajax({
                        url: '@Url.Action("GetRolesbyUserId", "Role")' + '/' + optionData.substring(4),
                        type: "GET",
                        cache: false,
                        async: false,
                        success: function (countiesJson) {
                            $.each(countiesJson, function (index, optionItem) {
                                $("#" + optionData + " option[value='" + optionItem.RoleID.toString() + "']").attr("selected", "selected");
                            });
                        }
                    });
                    if ($("#ddcl-" + optionData).length > 0) {
                        $("#ddcl-" + optionData).remove();
                        $("#ddcl-" + optionData + "-ddw").remove();
                    }
                    $("#" + optionData).dropdownchecklist({ emptyText: "Assign Roles" });
                }); //End Each Loop
            }
        });
        $('#jqgUsers').jqGrid('navGrid', '#jqgpUsers',
            { add: true, del: false, edit: false, search: false },
            { width: '250', closeAfterEdit: true, url: '@Url.Action("UpdateUser")' },
            { width: '250', closeAfterAdd: true, url: '@Url.Action("InsertUser")' },
            { width: '250', url: '@Url.Action("DeleteUser")' });

        $('#CustomPanel').appendTo('.ui-jqgrid-hbox');
        $(".ui-jqgrid-sortable").attr("style", "height: 32px");

        $('#UserName1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#FullName1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#Email1').blur(function () {
            $('#jqgUsers').trigger("reloadGrid");
        });

        $('#IsActive1').change(function () {
            $('#jqgUsers').trigger("reloadGrid");

        });

        $('#btnClear').click(function () {
            $('#UserName1').val('');
            $('#FullName1').val('');
            $('#Email1').val('');
            $('#IsActive1 option:eq(0)').attr('selected', 'selected');
            $('#jqgUsers').trigger("reloadGrid");
        });

    });

    function emailFormatter(cellvalue) {
        email = "<a href='mailto:" + cellvalue + "'>" + cellvalue + "</a>";
        return email;
    }

    function mymailelem(value, options) {
        var e1 = document.createElement("input");
        e1.type = "text";
        if (value != "") {
            value = value.split('>')[1].split('<')[0];
        }
        e1.value = value;
        z = document.createAttribute('class');
        z.value = 'FormElement ui-widget-content ui-corner-all';
        e1.setAttributeNode(z);
        return e1;
    }

    function mymailvalue(elem, operation, value) {
        if (value != undefined) {
            value = value.split('>')[1].split('<')[0];
        }
        else {
            value = '';
        }
        if (operation === 'get') {
            return $(elem)[0].value;
        } else if (operation === 'set') {
            $(elem).val(value);
        }
    }

    function imgformatter(cellvalue, options, rowObject) {
        if (cellvalue == 'True') {
            ActiveImage = "<img border='0' src='../../Content/images/tick.png' alt='' width='16px' height='16px' style='padding-top: 7px;'  />";
        }
        else {
            ActiveImage = "<img border='0' src='../../Content/images/cross.png' alt='' width='16px' height='16px' style='padding-top: 7px;'  />";
        }
        return ActiveImage;
    }

    function RoleCobFormatter(cellvalue, options, rowObject) {
        var id = "sel-" + options.rowId.toString();
        arrayIds.push(id);
        var retVal = roleDropDown.replace('_RoleID', id);
        return retVal;
    }

    function myelem(value, options) {
        var el = document.createElement("input");
        el.type = "checkbox";
        if (value.indexOf('tick') != -1) {
            value = 'checked';
            el.checked = 'checked';
        }
        else {
            value = '';
            el.checked = '';
        }
        return el;
    }

    function myvalue(elem, operation, value) {
        if (value != undefined && value.indexOf('tick') != -1) {
            value = 'checked';
        }
        else {
            value = '';
        }
        if (operation === 'get') {
            //                return $(elem).find("input").val();
            return $(elem).is(':checked');
        } else if (operation === 'set') {
            //                $('input', elem).val(value);
            //            $('input', elem).attr('checked', value);
            $(elem)[0].checked = value;
        }
    }

</script>

var arrayIds=[];
var roleDropDown=“”;
$(文档).ready(函数(){
$(“.ui dropdownschecklist>div>div>.active”).live(“更改”,函数(){
var parentId=$(this.parent().parent().parent().attr(“Id”);
parentId=parentId.substring(0,parentId.length-4);
$(“#“+parentId+”>span>span”).text(“赋值…”).css(“颜色”,“#666666”);
//设置变量以标识向用户分配或取消分配角色
var检查=假;
if($(this.attr(“已检查”)=“已检查”){
选中=正确;
}
//设置RoleId
var role=$(this.val();
//设置用户ID
var user=$(this.attr('id');
//启动Ajax调用
$.ajax({
url:'@url.Action(“ManageUserRoles”,“Role”),
键入:“获取”,
cache:false,
数据:{userid:user,roleid:role,chked:checked},
//async:false,
成功:函数(){
},
完成:函数(){
$(“#“+parentId+”>span>span”).text(“分配角色”).css(“颜色”,“#2222”);
}
});
//结束Ajax调用
});
roleDropDown=“”;
$.ajax({
url:'@url.Action(“GetAllReoles”,“角色”),
键入:“获取”,
是的,
async:false,
成功:函数(countiesJson){
$.each(countiesJson,函数(索引,optionData){
roleDropDown+=“optionData.RoleName+”;
});
}
});
roleDropDown+=“”;
var userGrid=$('jqgUsers');
var页面=[];
var MAX_PAGERS=2;
$('#jqgUsers').jqGrid({
//应请求来自wich数据的url
url:'@url.Action(“FetchUsers”),
//数据类型
数据类型:“json”,
cache:false,
//url访问方法类型
mtype:“POST”,
postData:{
用户名:function(){return$('\UserName1').val();},
FullName:function(){return$('#FullName1').val();},
Email:function(){return$('#Email1').val()},
IsActive:function(){return$('#IsActive1选项:selected').val();},
FromDate:function(){return$('#FromDate').val();},
ToDate:function(){return$('#ToDate').val()}
},
colNames:['User ID'、'User Name'、'Password'、'Full Name'、'Email'、'Active'、'Roles'、''],
//柱模型
colModel:[
{name:'UserID',index:'UserID',hidden:true,align:'left',editable:false},
{name:'UserName',index:'UserName',width:252,align:'left',edit:true,edittype:'text',editoptions:{maxlength:50},editrules:{required:true},
{name:'Password',index:'Password',hidden:true,width:175,align:'left',edit:true,edittype:'Password',editoptions:{maxlength:20},editrules:{required:true,edithidden:true},
{name:'FullName',index:'FullName',width:245,align:'left',edit:true,edittype:'text',editoptions:{maxlength:100},editrules:{required:true},
{name:'Email',index:'Email',width:247,align:'left',formatter:emailFormatter,sortable:true,edittype:'custom',editoptions:{custom_元素:mymailelem,custom_值:mymailvalue},editrules:{required:true,Email:true},
{name:'IsActive',index:'IsActive',宽度:85,格式化程序:imgformatter,可排序:true,align:'center',
可编辑:true,edittype:'custom',editoptions:{custom_元素:myelem,custom_值:myvalue}
},
{name:'role',index:'role',width:120,formatter:RoleCobFormatter,sortable:true,align:'left'},
{name:'act',index:'act',width:55,align:'center',sortable:false,formatter:'actions',
格式选项:{
凯斯:没错,
editformbutton:对,
德尔巴顿:是的,
编辑选项:{
url:“@url.Action(“UpdateUser”)”,
closeAfterEdit:true
},
删除选项:{
url:“@url.Action(“DeleteUser”)”
}
}
}
],
寻呼机:$('jqgpUsers'),
rowNum:10,
pginput:false,
行列表:[10,20,50,100],
sortname:'UserID',
排序器:“asc”,
viewrecords:是的,
高度:“自动”,
loadComplete:函数(){
if(pages[$('#jqgUsers').getGridParam('page')!=null){
var selRows=pages[$('#jqgUsers')。getGridParam('page');
var i;
var limit=selRows.length;
对于(i=0;i