Редактирование формы с встроенным редактированием в том же jqgrid - PullRequest
4 голосов
/ 17 ноября 2011

У меня есть один сценарий, в котором я хочу применить редактирование формы и встроенное редактирование для одной и той же jqgrid.У меня есть два пользователя, например, один идентификатор администратора и другой пользователь и компания является jqgrid.Теперь я хочу применить редактирование формы для администратора и встроенное редактирование для пользователя для компании Jqgrid.Я использую сценарии JSP для указания, является ли это администратором или пользователем.

Кто-нибудь знает, как я могу реализовать это, пожалуйста?

@ updated:

onSelectRow: function(id){                           
                var userType='<%=userDetails[1]%>';
                alert("userType= " + userType);
                if(userType === 'Company Administrator'){                   
                       jQuery('#companyList').jqGrid('editRow',id,true,inlineEditSuccess);                      
                }
           }

1 Ответ

1 голос
/ 17 ноября 2011

Реализация кажется мне понятной.Вам нужно просто установить на стороне сервера переменную JavaScript, которая будет описывать, какой режим редактирования может использовать пользователь.Вы даже можете разрешить редактирование некоторых пользователей, а другое - нет.

Если вы не хотите разрешать какое-либо редактирование форм для какого-либо использования, вы можете проверить значение соответствующей переменной и вызвать navGrid в зависимости от значения:

if (my.formEditing) {
    $("#list").jqGrid('navGrid', '#pager', ....);
}

или вы можете использовать

if (my.formEditingOn) {
    $("#list").jqGrid('navGrid', '#pager',
        {edit: my.formEditOn, add: my.formAddOn, add: my.formDelOn}, ....);
}

Если вы используете трюк, описанный в ответ (см. демо ), выможет вызвать 'navGrid' и создать все кнопки навигатора, но сделать видимыми только выбранные кнопки в зависимости от прав пользователя.

В случае использования встроенного редактирования вы можете использовать что-то вроде

onSelectRow: function (id) {
    if (!my.inlineEditing) {
        return;
    }
    //...
    $(this).jqGrid('editRow', id, ...);
}

Инициализация переменной my может отличаться в зависимости от технологии, которую вы используете на стороне сервера.В простейшем случае переменная my может быть определена как global на странице, поэтому она может быть определена на верхнем уровне.В случае ASP.NET MVC код может выглядеть следующим образом:

<%@ Page ...
...
<asp:Content ID="Content3" ContentPlaceHolderID="head" runat="server">

<%-- first include script which defines global my object based on the user rights --%>
<script type="text/javascript">
    // initialize my based of Model properties filled 
    var my = {
        inlineEditing : ..,
        formEditOn : ...,
        formAddOn : ...,
        formDelOn : ...
    }
</script>

<%-- now include the main script which uses jqGrid --%>
<script type="text/javascript" src="<%= Url.Content(scriptPath) %>"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...