복붙노트

[JQUERY] 데이터가로드 된 후 어떻게있는 jqGrid의 열 너비를 조정하려면?

JQUERY

데이터가로드 된 후 어떻게있는 jqGrid의 열 너비를 조정하려면?

해결법


  1. 1.귀하의 질문에 짧은 대답은 같을 수있는 jqGrid 그리드를 만든 후 변경 열 너비 할 수있는 방법을 제공합니다. 이러한 경우에 나는 코즈 마 Prutkov의 잘 알려진 경구 생각 나게 : "당신이 화약 방수 발명 방지". 그것은 다음에 대해 의미가없는 어떤 존재하면 아직 발명 할 수있다. 나는 크기 조정 그리드의 컬럼 내부 방법 dragEnd를 호출하는 제안이 질문에 대해 제안 된 솔루션을 기반으로 같은 방법을 썼다 그래서.

    귀하의 질문에 짧은 대답은 같을 수있는 jqGrid 그리드를 만든 후 변경 열 너비 할 수있는 방법을 제공합니다. 이러한 경우에 나는 코즈 마 Prutkov의 잘 알려진 경구 생각 나게 : "당신이 화약 방수 발명 방지". 그것은 다음에 대해 의미가없는 어떤 존재하면 아직 발명 할 수있다. 나는 크기 조정 그리드의 컬럼 내부 방법 dragEnd를 호출하는 제안이 질문에 대해 제안 된 솔루션을 기반으로 같은 방법을 썼다 그래서.

    데모는 새로운 방법의 사용을 보여줍니다. 데모는 사용자가 지정한 새로운 값으로 폭을 변경 한 후 그리드의 일부 열을 선택 할 수 있습니다 :

    아래 찾을 수있는 새로운 방법의 코드

    $.jgrid.extend({
        setColWidth: function (iCol, newWidth, adjustGridWidth) {
            return this.each(function () {
                var $self = $(this), grid = this.grid, p = this.p, colName, colModel = p.colModel, i, nCol;
                if (typeof iCol === "string") {
                    // the first parametrer is column name instead of index
                    colName = iCol;
                    for (i = 0, nCol = colModel.length; i < nCol; i++) {
                        if (colModel[i].name === colName) {
                            iCol = i;
                            break;
                        }
                    }
                    if (i >= nCol) {
                        return; // error: non-existing column name specified as the first parameter
                    }
                } else if (typeof iCol !== "number") {
                    return; // error: wrong parameters
                }
                grid.resizing = { idx: iCol };
                grid.headers[iCol].newWidth = newWidth;
                grid.newWidth = p.tblwidth + newWidth - grid.headers[iCol].width;
                grid.dragEnd();   // adjust column width
                if (adjustGridWidth !== false) {
                    $self.jqGrid("setGridWidth", grid.newWidth, false); // adjust grid width too
                }
            });
        }
    });
    

    당신은 당신의 프로젝트의 방법을 포함하고 setColWidth 방법을 사용할 수 있습니다. 상기 방법의 첫 번째 파라미터는 열 인덱스 또는 열 이름 중입니다. 두번째 매개 변수는 컬럼의 폭에 새로운 값을 지정할 수있다. 세 번째 매개 변수는 선택 사항입니다. 그것은이 지정되어 있지 않은 경우 그리드의 폭은 자동으로 열 너비의 변화에 ​​대응을 조정됩니다. 이 열 너비를 변경하기 전에하지 않은 경우 그리드에는 스크롤 막대가 없습니다 그래서. 당신은 당신이 setColWidth 방법의 세 번째 매개 변수로 false를 지정해야합니다 폭 원래의 그리드를 개최합니다.

    업데이트 : setColWidth의 최신 (업데이트) 버전은 GitHub의에서 다운로드 할 수 있습니다. 현재 여기에 개발하고있는 jqGrid의 새로운 무료 버전은있는 jqGrid의 기초 모듈 등의 방법을 포함한다. 여기에 다음에서 jquery.jqGrid.min.js, jquery.jqGrid.min.map 및 jquery.jqGrid.src.js를 사용하는 경우 그래서 당신은 플러그인으로 setColWidth와 jQuery.jqGrid.autoWidthColumns.js을 포함 할 필요가 없습니다.

    2 업데이트 : 나는 대응에 내가 GitHub의에 게시 setColWidth의 최신 버전을 위의 코드를 수정했습니다.

    (3) 업데이트 : 메소드 setColWidth가없는있는 jqGrid 포크있는 jqGrid의 I 2014 년 말 이래로 열의 내용의 폭에 기초하여 상기 컬럼의 폭을 연장하는 등 많은 새로운 기능이 개발 한 포함된다. 자세한 내용은 위키 문서를 참조하십시오.

  2. from https://stackoverflow.com/questions/20012365/how-to-adjust-the-column-width-of-jqgrid-after-the-data-is-loaded by cc-by-sa and MIT license