2014-07-22 2 views
0

jqgrid에서 특정 열에 주어진 값이있는 경우에만 편집 가능한 열이 있습니다. 추가/편집 양식에서 해당 열을 표시하거나 숨길 수 있습니다. 해당 열 (선택) 값을 기반으로?jqgrid 다른 열 값을 기반으로 편집 양식의 열 숨기기

나는 aftershowform 함수를 이미 거쳤는데, 다른 방법이 있습니까? aftershowform을 사용하면 모든 필드가 처음에 표시되고 추한 렌더링 효과로 숨겨집니다.

답변

2

beforeShowForm 또는 afterShowForm 콜백 내에 편집 가능한 열을 숨기거나 표시 할 수 있습니다. jqGrid가 양식을 으로 편집 가능한 모든 열으로 채우는 것을 이해하는 것이 중요합니다. 양식에 행이 있습니다. 모든 행에는 편집 가능한 열의 name을 기반으로 빌드하는 ID가 있습니다. 행 ID에는 접두어 "tr_"이 있으며 열 이름 (name 값은 colModel에 추가됩니다)에 추가됩니다. 당신이 name: "Name"을 갖는 열을 숨기해야하는 경우 다음

beforeShowForm: function ($form) { $form.find("#tr_Name").hide(); } 

또는 작업을 수행 할 수 있습니다, 그래서 그냥

beforeShowForm: function() { $("#tr_Name").hide(); } 

(the answer 참조).

var rowid = $form.find("#id_g").val(); 

또는

var rowid = $("#id_g").val(); 

(the answer 참조)를 사용할 수 있습니다 편집 현재됩니다 ROWID를 얻으려면. 이상한 id 값 "id_g"는 모든 편집 폼에서 jqGrid에 의해 배치 될 숨겨진 요소의 id입니다. selrow의 값도 현재 편집 행의 ROWID를 포함하고 있기 때문에 다른 방법은

var rowid = $(this).jqGrid("getGridParam", "selrow"); 

를 사용할 수 있습니다.

행을 숨기거나 표시하기 전에 다른 열의 내용을 테스트하려면 getCell을 사용할 수 있습니다. datatype: "local" (또는 loadonce: true을 사용하는 경우)의 경우 getLocalRow 메서드를 사용하여 전체 행 데이터가있는 객체를 가져올 수 있습니다.

관련 문제