행 삽입 버튼을 눌렀을 때 현재 그리드에 선택된 행에 대해서 위, 아래 선택 후 행 삽입을 하는 기능을 구현하게 될 일이 있어서 정리해봤습니다.


첫번째로 삽입할 수 있는 버튼을 넣어줍니다.


위쪽에 있는 plus 버튼입니다.


1
2
3
4
5
6
7
8
9
10
11
12
var myGrid = jQuery("#dept_table");
myGrid.jqGrid('navButtonAdd', "#dept_nav", {
    caption: "",
    buttonicon: "ui-icon-plus",
    title: "행 삽입",
    onClickButton: function () {
        newId = $("#item_info_table").getGridParam("reccount") +1;
        var datarow = {임의의 데이터},
        newId = $.jgrid.randId();
        myGrid.addRowData(undefined, datarow, row_position(), $("#dept_table").getGridParam( "selrow" ))
    }
});
cs



8번째 행에서 임의의 데이터를 넣어줍니다.

10번쨰 행에서 row_position() 이 부분이 중요했네요. $("#dept_table").getGridParam("selrow") 이건 현재 선택된 행의 id값을 반환합니다.


그럼 row_position() 함수를 만들어줘야겠죠 ?


1
2
3
4
function row_position(){
    var position = $('input:radio[name=row_position]:checked').val();
    return position;
}
cs


간단합니다.  맨 위에 사진에서 보듯이 위 아래 체크박스가 있습니다. 체크박스 태그도 아래 첨부하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form class="form-horizontal">
     <fieldset class="demo-switcher-1">
         <div class="form-group">
            <div class="col-md-10" style = "margin-left: 10px">
                <label class="radio radio-inline">
                    <input type="radio" class="radiobox" value = "before" name="row_positions" checked="checked">
                    <span>위</span>  
                </label>
                <label class="radio radio-inline">
                    <input type="radio" class="radiobox" value = "after" name="row_positions">
                    <span>아래</span> 
                </label>
            </div>
        </div>
     </fieldset>
 </form>    
cs


부트스트랩적용하였습니다.


체크박스의 value 값이 before, after입니다. 그럼 이해가 되시겠죠 ?


이상 jqgrid 선택된 행 기준으로 행 삽입하는 jquery 였습니다.

'JQUERY' 카테고리의 다른 글

jquery 페이지 새로고침(reload)  (0) 2017.03.02
jqgrid multiselect 삭제 구현  (0) 2017.02.28
ajax 기본문법  (0) 2017.02.24
jqgrid caption 숨기기  (0) 2017.02.22
jqgrid 특정 셀 editable 유무 설정하기  (0) 2017.02.22