🧩jqGrid 간단한 사용법

🧩jqGrid 간단한 사용법🧩

 

fn_grdm_columns() {
        if (typeof this._cls_info.grdMasterCols === null || this._cls_info.grdMasterCols === null || this._cls_info.grdMasterCols.length < 1) {
            var owner = this;
            this._cls_info.grdMasterCols = [
                { name: "branch_id", hidden: true },
                { name: "senior_id", hidden: true },

                {name :'checkBox',  index :'checkBox',   align:'center', cellattr: function () { return " class='order'" }
                    , label:'<input type="checkbox" onclick="jsFuncs.fn_checkbox_name_checkall(\\'grdMaster_checkBox\\', this.checked)">'
                    , editable: true, edittype:"checkbox",editoptions: {value:"Y:N"},formatter:owner.fn_grdm_chk_formatter
                    , formatoptions:{disabled:false}, sortable:false, width:30},
                
                { name: "senior_nm", label: "aaa", width: 100,classes : 'padl16' },
                { name: "plan_cnt", label: "bbb"   , width: 60, align:"center"},
                { name: "result_days", label: "ccc"   , width: 60, align:"center"},
                { name: "file_view", label: "ddd"  , width: 60, align:'center', formatter:owner.fn_grdm_chk_formatter, cellattr: function () { return "style='color:#1a71f4;'" }},
                { name: "", label: ""   , width: 200},
            ];
        }

    }

$("#grdMster").jqGrid({
		colModel: [
				{ nmae: "name", index: "name", widht: 600, align: "left", classes: "gird-col"},
				{ name: "name", index: "price", width: 100, aligh: "right", classes: "grid-col"}
		],
		...
});

formatter

안에 무슨 형식을 넣을 건지 → checkbox, radio …etc

class 부여할때

  • classes: ”grid-col”
  • cellattr: function() { retrun “ class=’order’ ”}

Style 부여할때

  • cellattr: function() {return “style = ‘color: #1a71f4’ “}};

 

Cell padding 먹일때 (tr- th, td)

  1. classes: “grid-col” 부여해서 .grid-col { padding-right: 5px !important; padding-left: 5px !important; }
  2. #grid -id th {…} → body .ui-jqgrid .ui-jqgir-htable th {…}
  3. table td .cell { padding-left: 8px; padding-right: 8px; }
  4. tr .jqgrow td { padding: 0px 2px 0px !important; }

 

Option

  • url: ajax처럼 데이터를 주고받을 서버 url 주소
  • datatype: 말 그대로 데이터 타입. ajax처럼 사욯하면됨(local 타입도 존재)
  • postData: 넘겨줄 데이터
  • mtype: POST or GET
  • colNames: 그리드 헤더의 제목 배열이며 ( colModel과 개수가 꼭 맞아야 한다.)
  • colModel: 그리드 행에 보여줄 데이터로 꼭 데이터 칼럼과 매칭을 시켜줘야 한다. (colNames의 개수와 맞아야 한다.)
  • rowNum: 보여줄 행의 개수
  • pager: 페이징을 하기 위해 선언해두며 거의 필수라고 보면 된다.
  • height, width: 높이, 넓이
  • caption: 타이틀, 제목

 

colModel Option

🔥 data와 직접 관련있는것이다. → 데이터를 매핑해준다. 매핑이 이뤄지는 방식은 colModel 옵션 중 하나인 “name”을 이용하여 이뤄진다. 이때 “name”의 value 값을 데이터의 변수명과 일치시켜주면 자동으로 매핑이 된다.
// jqGrid 예제
// jqGrid option, jqGrid colModel option 포함
<table id="grid"></table>
<div id="pager"></div>
<script type="text/javascript">
var $Grid = {};
$(document).ready(function(){
     $Grid = $("#testGrid");
     $Grid.jqGrid({
          url : '../resources/server.json',
          datatype : "json",
          mtype : "get",
          jsonReader : {
               id : "id" // 대표 아이디를 설정
               ,root : "employee" // 데이터의 시작을 설정
          },
          colNames : [
                          '아이디',
                          '이름',
                          '나이',
                          '성별',
                          '직위'
                     ],
          colModel : [
                    { name : 'id',        width:40,  align:'center'},
                    { name : 'name',      width:80,  align:'left'  },
                    { name : 'age',       width:80,  align:'left'  },
                    { name : 'sex',       width:80,  align:'right' }, 
                    { name : 'position',  width:50,  align:'right' }
            ],
          pager : '#pager',
          rowNum : '10',
          multiselect : true,
          postData : {
               id : 'id',
               name : 'name'
          }
    });
});

 

  • name: 출력할 데이터의 이름이다. 서버에서 받은 데이터의 변수명을 명시해준다.
  • index: 칼럼 정렬 시 서버에 넘어가는 값이다. index값을 설정하지 않으면 name 값이 넘어간다.
  • widht: 칼럼의 넓이를 설정한다.
  • align: 칼럼 내 데이터의 정렬을 설정한다.
  • hidden: 데이터 값은 설정하고 화면에서 보이고 싶지 않을 때 사용한다.
  • formatter: 데이터로 들어온 값을 특정 형식을 변환해서 보여줄 수 있다.

 

rowId 가져오기

🔥 선택한 row의 데이터를 가져오기 위해선 해당 열의 id가 필요하다. getGridParam을 사용하여 selrow를 가져오는 방식이다.
var addVendor = function() {
    var rowid  = $("#testGrid").jqGrid("getGridParam","selrow"); // 선택한 열의 아이디값
    var rowid = $("#testGrid").getGridParam("selrow");
}

 

🔥 “selarrow”를 사용하면 다중으로 선택한 모든 열의 rowId를 “배열”로 가져온다. 하나만 선택해도 배열로 가져온다.
var rowid = $("#testGrid").jqGrid("getGridParam","selarrrow");
var rowid = $("#testGrid").getGridParam("selarrrow");

 

rowData 가져오기

🔥 rowId를 가지고 선택한 row의 데이터를 가져올 것이다. rowId를 사용하지 않으면 현재 화면에 표출되고 있는 모든 열의 데이터를 가져온다.
//모든 열의 데이터 가져오기
var allRowData = $("#testGrid").jqGrid("getRowData");
var allRowData = $("#testGrid").getRowData();
 
//선택한 열의 데이터 가져오기
var selRowData = $("#testGrid").jqGrid("getRowData",rowId);
var selRowData = $("#testGrid").getRowData(rowId);
 
//선택한 열의 특정 데이터 가져오기
var selRowTitle = $("#testGrid").jqGrid("getRowData",rowId).bbsTitle;
var selRowHit = $("#testGrid").getRowData(rowId);.bbsHit;

 

참고

 

jQGrid CRUD + Search

jQGrid CRUD + Search jQGrid 기본적인 CRUD 와 Search 예 입니다.  (JSP) 소스 첨...

blog.naver.com

 

 

JQGRID SEARCH 검색 쉽게

https://stackoverflow.com/questions/8832085/jqgrid-change-filter-search-pop-up-form-to-be-flat-on-page-not-a-dialog/24528183#24528183 JQ그리드에서 서치 할때 어떻게 하면 쉽게 할 수 있을까 테이블 내에 칼럼 서칭이나 옵션클

jihazarrd.tistory.com

 

 

jqGrid dataType json CRUD + filterToolbar + dateRangePicker 1부 데이터 조회

추천 그리드 ▼ Link : https://aljjabaegi.tistory.com/593 [VanilaJS Free Grid library] Aljjabaegi Grid Grand Open [Free Grid library] Aljjabaegi Grid Grand Open 여러 무료 라이브러리를 사용해오다가 많은 요구사항에 맞추어 커

aljjabaegi.tistory.com

 

'jQuery > rib - jQgrid' 카테고리의 다른 글

🧩jqGrid - cell - editable(style)  (0) 2022.12.13