구현은 내가 분명히 보인다. 서버 측에서 사용자가 사용할 수있는 편집 모드를 설명하는 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>
완료되었습니다. 당신이 지정한대로 사용자 유형이 JSP scriptlet, 즉 서버 측 코드에서 검색되기 때문에 onSelectRow 이벤트 함수에서 사용자 유형을 검사 할 때이 방식으로 시도했습니다. 내 @ 업데이트 된 코드를 보아주십시오, 답장을 보내 주셔서 감사합니다. –
@Bhagwat : 천만에요! – Oleg