jQuery/rib - jQgrid

๐ŸงฉjqGrid ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•

dev_jiwon 2022. 12. 14.

๐Ÿงฉ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

๋Œ“๊ธ€