jqGrid의 숨겨진 열
jqGrid 테이블에서 열을 숨기는 방법이 양식 편집기 모달 대화 상자에서 행을 편집 할 때 읽기 전용으로 표시 할 수 있습니까?
나는 queen3 의 제안 을 확장하고 싶습니다 . 다음을 적용하면 트릭이됩니다.
editoptions: { 
              dataInit: function(element) { 
                          $(element).attr("readonly", "readonly"); 
                        } 
             }
시나리오 # 1 :
- 그리드에 필드가 표시되어야합니다.
- 필드는 양식에 표시되어야합니다.
- 필드는 읽기 전용이어야합니다.
해결책 :
colModel:[
        {  name:'providerUserId',
               index:'providerUserId', 
               width:100,editable:true, 
               editrules:{required:true}, 
               editoptions:{ 
                            dataInit: function(element) { 
                                  jq(element).attr("readonly", "readonly"); 
                             } 
                           }
            },
],
providerUserId는 그리드에 표시되고 양식을 편집 할 때 표시됩니다. 그러나 내용을 편집 할 수 없습니다.
시나리오 # 2 :
- 그리드에서 필드가 배치됩니다.
- 필드는 양식에 표시되어야합니다.
- 필드는 읽기 전용이어야합니다.
해결책 :
colModel:[
           {name:'providerUserId',
            index:'providerUserId', 
            width:100,editable:true, 
            editrules:{
                         required:true, 
                         edithidden:true
                      },
            hidden:true, 
            editoptions:{ 
                  dataInit: function(element) {                     
                             jq(element).attr("readonly", "readonly"); 
                          } 
                     }
         },
        ]
두 경우 모두 일반적인 경우 $ 대신 jq를 사용하여 jquery를 참조하고 있습니다. 내 HTML에는 jQuery에서 사용하는 변수를 수정하는 다음 펼쳐집니다.
<script type="text/javascript">
    var jq = jQuery.noConflict();
</script>
이 기능은 jqGrid에 내장되어 있습니다.
다음과 같이 그리드 기능을 설정하십시오.
$('#myGrid').jqGrid({
   ...
   colNames: ['Manager', 'Name', 'HiddenSalary'],
   colModel: [               
               { name: 'Manager', editable: true },
               { name: 'Price', editable: true },
               { name: 'HiddenSalary', hidden: true , editable: true, 
                  editrules: {edithidden:true} 
               }
             ],
   ...
};
적용 할 수있는 다른 편집 규칙이 있지만이 기본 설정은 그리드보기에서 관리자의 급여를 숨기지 만 편집 양식이 표시 될 때 편집을 허용합니다.
다음 코드를 사용하여 테이블 열을 숨길 수 있습니다.
JQuery("tableName").hideCol("colName");
그리고 다음 코드를 사용하여 다시 표시 할 수 있습니다.
JQuery("tableName").showCol("colName");
질문에 대해서는 document.ready ()에서 hideCol () 코드를 호출 할 수 있으며 대화 상자의 편집 / 클릭 이벤트에서 showCol () 코드를 바인딩 할 수 있습니다.
이 스레드는 꽤 오래되었다고 생각하지만 다른 사람이이 질문을 우연히 발견 할 경우를 대비하여 테이블의 선택한 행에서 값을 가져와야했지만 해당 행의 출처를 표시하고 싶지 않았습니다. 나는 hideCol을 사용했지만 Andy와 똑같은 문제가 있었는데 지저분 해 보였습니다. 그것을 고치기 위해 (핵이라고 부름) 그리드의 너비를 다시 설정했습니다.
jQuery(document).ready(function() {
       jQuery("#ItemGrid").jqGrid({ 
                ..., 
                width: 700,
                ...
        }).hideCol('StoreId').setGridWidth(700)
내 행 너비는 자동이므로 테이블 너비를 재설정하면 열 너비가 재설정되지만 숨겨진 너비는 제외되어 간격이 채워집니다.
edithidden : true를 사용하고
editoptions: { dataInit: function(element) { $(element).attr("readonly", "readonly"); } }
또는 사용자 정의 편집을 위해 jqGrid 위키를 참조하십시오. 모든 입력 유형을 설정할 수 있습니다.
그리드 기둥을 숨기려면
jQuery("#validGrid").jqGrid('hideCol',str);
이 포스트는 조금 오래되었습니다. 그러나 이것은 열을 표시하거나 숨기는 코드입니다. 내장 함수를 사용하여 열을 표시하고 표시 만합니다.
열 표시 / 숨김 열을 표시하는 기능입니다. #jqGrid는 내 그리드의 이름이고 columnChooser는 jqGrid 열 선택기입니다.
  function showHideColumns() {
        $('#jqGrid').jqGrid('columnChooser', {
            width: 250,
            dialog_opts: {
                modal: true,
                minWidth: 250,
                height: 300,
                show: 'blind',
                hide: 'explode',
                dividerLocation: 0.5
            } });
참조 URL : https://stackoverflow.com/questions/1661800/hidden-columns-in-jqgrid
'ProgramingTip' 카테고리의 다른 글
| React Native에서 flex 대 flexGrow 대 flexShrink 대 flexBasis? (0) | 2021.01.09 | 
|---|---|
| 사용할 설치 제품은 무엇입니까? (0) | 2021.01.09 | 
| 가장 빠른 분해 알고리즘은 무엇입니까? (0) | 2021.01.09 | 
| Notepad ++ 탐욕스럽지 않은 정규 탐욕 (0) | 2021.01.09 | 
| 숫자를 담을 수있을만큼 큰 변수 유형을 자동으로 선택 (0) | 2021.01.09 |