tonytomov style for example bootstrap jqgrid

for - jqgrid style bootstrap



Edición de formularios con edición en línea a la misma jqgrid (1)

Tengo un escenario en el que quiero aplicar la edición de formulario y la edición en línea para el mismo jqgrid. Tengo dos usuarios, por ejemplo, un administrador de identificador y otro es usuario y compañía es un jqgrid. ahora quiero aplicar la edición de formularios para el administrador y la edición en línea para el usuario de la empresa Jqgrid. Estoy usando scriptlets JSP para especificar si es administrador o usuario.

¿Alguien sabe cómo puedo implementar esto por favor?

@actualizado :

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


La implementación me parece clara. Solo tiene que configurar en el servidor una variable de JavaScript que describa qué modo de edición puede usar el usuario. Incluso puedes permitir la edición de algunos usuarios y otra no.

Si no desea permitir ningún tipo de edición de formulario para algún uso, puede probar el valor de la variable correspondiente y llamar a navGrid depende del valor:

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

o puedes usar

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

Si usa el truco descrito en la respuesta (vea la demostración ) puede llamar a ''navGrid'' y crear todos los botones del navegador, pero hacer que solo los botones seleccionados sean visibles depende de los permisos del usuario.

En caso de uso de edición en línea puede usar algo como

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

La inicialización de my variable puede ser diferente dependiendo de la tecnología que use en el lado del servidor. En el más simple, my variable se puede definir como global en la página para que pueda definirse en el nivel superior. En el caso de ASP.NET MVC, el código puede ser similar al siguiente:

<%@ 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>