JavaScript È°¿ëÆÁ
2019.01.13 / 22:28

[jqGrid] Context Menu

hanulbit
Ãßõ ¼ö 238
Context ¸Þ´º¸¦ »ý¼ºÇϱâ À§Çؼ­ context.css¿Í context.js¸¦ ÀÓÆ÷Æ®ÇØÁÖ¾î¾ß ÇÑ´Ù.

 

<link rel="stylesheet" type="text/css" href="<c:url value='/css/context/jquery.context.css' />" />

<script type="text/javascript" src="<c:url value='/js/lib/context/jquery.context.js' />" ></script>

 

 

Document.ready¿¡ ±â¼úµÇ´Â JqGrid

$("#mainGrid").jqGrid({
url : "<c:url value='/dsgnDoc/getBisnFileGridList.do' />", /* ±×¸®µåÀÇ µ¥ÀÌÅ͸¦ °¡Á®¿Ã °æ·Î */
datatype : "xml", /* °¡Á®¿Â µ¥ÀÌÅÍÀÇ Çü½Ä (XML/JSON/ROW)*/
mtype : "POST", /* ajax È£Ãâ ¹æ½Ä(GET/POST) */
width : parent.$("#rst_lst").width() - 2, // ¿ìÃø ¿©¹é 2px; /* ±×¸®µå ³Êºñ */
height : parent.$("#data_lst_area").height() - 55 - 29, // ÀÚ·á¸ñ·Ï »ó´Ü, ÇÏ´Ü ÆäÀÌ¡ »çÀÌÁî ó¸®
colNames : [<c:out value='${gridHeaderName}' escapeXml='false' />], /* Ä÷³ À̸§ */
colModel : [<c:out value='${gridHeader}' escapeXml='false' />], /* Ä÷³ ±¸Á¶(index¿¡ ¼³Á¤µÈ À̸§ÀÌ Á¤·Ä½Ã Á¤·Ä ±âÁØ¿­ À̸§À¸·Î ³Ñ¾î°¨) */
multiselect : true,
multiboxonly:true, // üũ ¹Ú½º¸¦ Ŭ¸¯ÇØ¾ß ´ÙÁß ¼±Åà °¡´É
rownumbers : true, // Çà¹øÈ£ Ç¥½Ã¿©ºÎ
rownumWidth : 30, // Çà¹øÈ£ ¿­ÀÇ ³Êºñ
//scrollOffset : 0, // 0À¸·Î ¼±¾ðÇÒ °æ¿ì Grid ½ºÅ©·Ñ¹Ù Ç¥½Ã ¾ÊÇÔ
shrinkToFit : false, /* RowWidth °íÁ¤ */
pager : jQuery("#divPager"), /* ÆäÀÌÀú ¼³Á¤ */
rowNum : 100, /* ÆäÀÌÁö´ç ·¹ÄÚµå¼ö ÃʱⰪ */
rowList : [100, 200], /* ÆäÀÌÁö´ç ·¹ÄÚµå¼ö ¼±Åà °¡´ÉÇÑ °ª */
viewrecords : true, /* ÆäÀÌÀú¿¡ ÃÑ ·¹ÄÚµå¼ö¸¦ Ç¥½ÃÇÒ °ÍÀÎÁö ¼³Á¤ */
loadtext : "·ÎµùÁß...", /* µ¥ÀÌÅÍ ·ÎµùÁß¿¡ Ç¥½ÃµÉ ¸Þ½ÃÁö */
sortname : "t2.clfy_id", /* óÀ½ Á¤·ÄµÉ Ä÷³ */
sortorder : "asc", /* Á¤·Ä¹æ¹ý (asc/desc) */
imgpath: "<c:url value='/images/jqGrid' />", /* ±×¸®µå¿¡¼­ »ç¿ëµÇ´Â À̹ÌÁö °æ·Î */
loadui : "enable", // ·ÎµùµÉ¶§ ¸Þ¼¼Áö Ç¥½Ã¿©ºÎ

// ±×¸®µå ´õºí Ŭ¸¯ ½Ã À̺¥Æ®
ondblClickRow : function(rowid) {
// ÀÚ·áÁ¶È¸ function ¼öÇà
uf_viewDoc();
},

onCellSelect : function(rowid,iCol,cellcontent,e){

},

// ÆĶó¹ÌÅÍ
postData : {
dataName : "<c:out value='${dataName}' />",
dataKind : "<c:out value='${dataKind}' />"
},

// ¸¶¿ì½º Ŭ¸¯ À̺¥Æ®
onSelectRow : function(rowid) {
// Ç¥½Ã ÁßÀÎ context ¸Þ´º hide ó¸®
$(".contextMenu").hide();

},

// ¸¶¿ì½º ¿ìÃø¹öÆ° Ŭ¸¯ À̺¥Æ®
onRightClickRow : function(rowid) { /* ¿ìÃø¹öÆ° À̺¥Æ® */
// ±âÁ¸ context ¸Þ´º »èÁ¦
$('#mainGrid').destroyContextMenu();

if(rowid == null || rowid == ""){
return;
}else{


if($("#mainGrid").jqGrid('getGridParam','selarrrow') != rowid)
$("#mainGrid").setSelection(rowid);

// ±âÁ¸ Context ¸Þ´º Ç׸ñ »èÁ¦
$('#mainGrid').destroyContextMenu();

$("#mainGrid").contextMenu({
menu: 'normalMenu'
});
}
},

loadComplete : function() { /* µ¥ÀÌÅÍ ·ÎµùÀÌ ³¡³­ÈÄ È£ÃâÇÒ ÇÔ¼ö*/
},

afterInsertRow: function(rowid, rowdata, rowelem) { // µ¥ÀÌÅ͸¦ ·ÎµåÇÒ¶§ÀÇ ¾×¼Ç
// ÀÌ·ÂÀÌ ÀÖ´Â °æ¿ì »ö»ó ó¸®
if(rowdata.histYn == "Y"){
$("#"+rowid).css("background", "#E8D9FF");
}
}
});

 

Contxt menu¿¡¼­ Ŭ¸¯ ½Ã 󸮵Ǵ function

function onCommand(flag) {
switch (flag) {
case 0 :
uf_insertDoc();
break;
case 1 :
uf_updateDoc();
break;
case 2 :
uf_detailDoc();
break;
case 3 :
alert("´Ù¿î·Îµå");
break;
case 4 :
// ÀÚ·á Á¶È¸ ¼öÇà
uf_viewDoc();
break;
case 5 :
alert("º¯°æµî·Ï");
break;
case 6 :
// ÀÚ·á »èÁ¦ ¼öÇà
uf_deleteDoc();
break;
}
}

 

jqGrid¿Í Context Menu°¡ À§Ä¡ÇÏ´Â °÷

<table id="mainGrid" class="grid"></table>
<div id="divPager" class="grid" style="text-align: center"></div>

<!-- contextMenu ¿µ¿ª (ÀÏ¹Ý µµ¸éÀÎ °æ¿ì)-->
<ul id="normalMenu" class="gridMenu">
<li class='edit'>
<a href="javascript:return false;" onclick='onCommand(1)' >Á¤º¸¼öÁ¤</a>
</li>
<li class='paste'>
<a href="javascript:return false;" onclick='onCommand(2)' >ÀÚ·á»ó¼¼Á¤º¸</a>
</li>
<li class='wastebasket separator'>
<a href="javascript:return false;" onclick='onCommand(6)' >ÀÚ·á»èÁ¦</a>
</li>
<li class='save'>
<a href="javascript:return false;" onclick='onCommand(3)' >´Ù¿î·Îµå</a>
</li>
<li class='search'>
<a href="javascript:return false;" onclick='onCommand(4)' >ÀÚ·áÁ¶È¸</a>
</li>
<li class='copy separator'>
<a href="javascript:return false;" onclick='onCommand(5)' >ÀÚ·á À̷º¯°æ</a>
</li>
<li class='quit separator'>
<a href="javascript:return false;">´Ý±â</a>
</li>
</ul>