public virtual JsonResult DynamicGridData(int page, int rows, String search, String sidx, String sord)
        {
            int       pageIndex      = Convert.ToInt32(page) - 1;
            int       pageSize       = rows;
            ICriteria searchCriteria = roleLocaleService.GetSearchCriteria(search);

            long totalRecords = roleLocaleService.Count(searchCriteria);
            var  totalPages   = (int)Math.Ceiling((float)totalRecords / pageSize);
            var  roles        = searchCriteria.SetMaxResults(pageSize).SetFirstResult(pageIndex * pageSize).AddOrder(sord == "asc" ? Order.Asc(sidx) : Order.Desc(sidx)).List <RoleLocale>();
            var  jsonData     = new
            {
                total = totalPages,
                page,
                records = totalRecords,
                rows    = (
                    from role in roles
                    select new
                {
                    id = !role.Role.IsSystemRole ? role.Role.Id.ToString() : null,
                    cell = new[] { role.Role.Name,
                                   !role.Role.NotAssignableRole ? String.Format(JqGridConstants.UrlTemplate,
                                                                                Url.Action(MVC.Admin.Role.Users(role.Role.Id)),
                                                                                Translate(".Model.Role.Users")) : String.Empty,
                                   !role.Role.NotAssignableRole ? String.Format(JqGridConstants.UrlTemplate,
                                                                                Url.Action(MVC.Admin.Role.UserGroups(role.Role.Id)),
                                                                                Translate(".Model.Role.UserGroups")) : String.Empty,
                                   !role.Role.NotPermissible ? String.Format(JqGridConstants.UrlTemplate,
                                                                             Url.Action(MVC.Admin.Role.Permissions(role.Role.Id, null)),
                                                                             Translate(".Model.Role.Permissions")) : String.Empty,
                                   !role.Role.IsSystemRole ? String.Format("<a href=\"{0}\"><em class=\"delete\" style=\"margin-left: 10px;\"/></a>",
                                                                           Url.Action(MVC.Admin.Role.Remove(role.Role.Id))) : String.Empty }
                }).ToArray()
            };

            return(Json(jsonData));
        }