表单编辑与对同一jqgrid的内联编辑

表单编辑与对同一jqgrid的内联编辑,jqgrid,Jqgrid,我有一个场景,我想对同一个jqgrid应用表单编辑和内联编辑。我有两个用户,一个是id Admin,另一个是user,公司是jqgrid。现在我想为管理员应用表单编辑,为公司Jqgrid的用户应用内联编辑。我使用JSP脚本来指定它是管理员还是用户 有人知道我怎样才能实现这个吗 @更新: onSelectRow: function(id){ var userType='<%=userDetails[1]%&

我有一个场景,我想对同一个jqgrid应用表单编辑和内联编辑。我有两个用户,一个是id Admin,另一个是user,公司是jqgrid。现在我想为管理员应用表单编辑,为公司Jqgrid的用户应用内联编辑。我使用JSP脚本来指定它是管理员还是用户

有人知道我怎样才能实现这个吗

@更新:

onSelectRow: function(id){                           
                var userType='<%=userDetails[1]%>';
                alert("userType= " + userType);
                if(userType === 'Company Administrator'){                   
                       jQuery('#companyList').jqGrid('editRow',id,true,inlineEditSuccess);                      
                }
           }
onsetrow:function(id){
var userType='';
警报(“userType=“+userType”);
如果(用户类型==='公司管理员'){
jQuery('#companyList').jqGrid('editRow',id,true,inlineeditsucture);
}
}

实现似乎很清楚。您只需要在服务器端设置一个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>

完成了。正如您所指定的,当我在OnSetrow事件函数中检查用户类型时,我尝试了这种方式,因为用户类型是从JSP脚本(即服务器端代码)检索的。请查看我的@更新代码,谢谢回复。