2011-11-17 2 views
4

동일한 jqgrid에 대해 양식 편집과 인라인 편집을 모두 적용하려는 시나리오가 하나 있습니다. 나는 예를 들어 하나의 ID 관리자와 다른 두 사용자가 있으며 사용자와 회사는 jqgrid입니다. 이제 관리자 용 양식 편집과 회사 Jqgrid 용 사용자 용 인라인 편집을 적용하려고합니다. JSP 스크립틀릿을 사용하여 관리자인지 사용자인지를 지정합니다.동일한 jqgrid에 대한 인라인 편집으로 양식 편집

아무도 내가 이것을 어떻게 구현할 수 있을까요?

는 @updated :

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

답변

1

구현은 내가 분명히 보인다. 서버 측에서 사용자가 사용할 수있는 편집 모드를 설명하는 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}, ....); 
} 
사용할 수 있습니다

the answer (the demo 참조)에 설명 된 트릭을 사용하려면 'navGrid'를 호출하고 모든 탐색기 버튼을 만들 수 있지만 선택한 버튼 만 사용자의 권한에 따라 표시되도록 할 수 있습니다.

당신이

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

같은 것을 사용할 수 있습니다 편집 인라인의 사용의 경우에는 my 변수의 초기화는 다른 사용자가 서버 측에서 사용하는 기술에 의존 할 수있다. 가장 간단한 경우 my 변수는 페이지에 글로벌으로 정의 될 수 있으므로 최상위 레벨에서 정의 할 수 있습니다. 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> 
+0

완료되었습니다. 당신이 지정한대로 사용자 유형이 JSP scriptlet, 즉 서버 측 코드에서 검색되기 때문에 onSelectRow 이벤트 함수에서 사용자 유형을 검사 할 때이 방식으로 시도했습니다. 내 @ 업데이트 된 코드를 보아주십시오, 답장을 보내 주셔서 감사합니다. –

+0

@Bhagwat : 천만에요! – Oleg

관련 문제