表单编辑与对同一jqgrid的内联编辑
我有一个场景,我想对同一个jqgrid应用表单编辑和内联编辑。我有两个用户,一个是id Admin,另一个是user,公司是jqgrid。现在我想为管理员应用表单编辑,为公司Jqgrid的用户应用内联编辑。我使用JSP脚本来指定它是管理员还是用户 有人知道我怎样才能实现这个吗 @更新:表单编辑与对同一jqgrid的内联编辑,jqgrid,Jqgrid,我有一个场景,我想对同一个jqgrid应用表单编辑和内联编辑。我有两个用户,一个是id Admin,另一个是user,公司是jqgrid。现在我想为管理员应用表单编辑,为公司Jqgrid的用户应用内联编辑。我使用JSP脚本来指定它是管理员还是用户 有人知道我怎样才能实现这个吗 @更新: onSelectRow: function(id){ var userType='<%=userDetails[1]%&
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脚本(即服务器端代码)检索的。请查看我的@更新代码,谢谢回复。