1l2h
10
2020-12-03 13:18:56
2
124

JqGrid search 에러


안녕하세요.. 스프링부트에서 jqgrid를 사용하는 중 loadonce 옵션을 true로 주었고, 한번 로드된 데이터를 통해서 search 기능을 사용하는 도중 에러가 발생하였습니다.

3일 동안 찾아봤는데 뭐가 문제인지 모르겠습니다.. 조언 부탁드립니다.

 밑에는 제가 사용한 코드입니다. 데이터는 정상적으로 출력이 되는데.. toolbar를 이용한 검색이나 

navGrid에 돋보기 아이콘을 이용한 검색을 하면 위와같은 에러가 나면서 '조회중..'에서 멈춰버립니다..

<head>
<link rel="stylesheet" href="/resources/bootstrap/css/bootstrap.css">
    <link rel="stylesheet" href="/resources/bootstrap/css/bootstrap-theme.css">
    <link rel="stylesheet" type="text/css" media="screen" href="/resources/css/ui.jqgrid-bootstrap4.css"/>
    <link rel="stylesheet" type="text/css" media="screen" href="/resources/jqueryUI/jquery-ui.min.css"/>


    <script src="/resources/js/jquery-1.11.0.min.js"></script>
    <script>
        // jQuery import 바로아래에 넣어 주면 됩니다.
        // Cannot read property 'msie' of undefined 에러 나올때
        jQuery.browser = {};
        (function () {
            jQuery.browser.msie = false;
            jQuery.browser.version = 0;
            if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
                jQuery.browser.msie = true;
                jQuery.browser.version = RegExp.$1;
            }
        })();
    </script>
    <script type="text/javascript" src="/resources/js/i18n/grid.locale-kr.js"></script>
    <script type="text/javascript" src="/resources/js/jquery.jqGrid.min.js"></script>
    <script type="text/javascript" src="/resources/jqueryUI/jquery-ui.min.js"></script>
</head>

<script type="text/javascript">

        $(document).ready(function ($) {
            $("#jqGrid").jqGrid({
                    url: "http://localhost:8080/employee/getlist",
                    datatype: 'json',
                    mtype: 'GET',
                    colNames: ['ID','구분', '회사명', '부서', '이름', '연락처', '휴대전화', 'Email'],
                    colModel: [
                        {name: "employeeId",index:"employeeId", width: 50,align:'center', key:true, hidden:true, search: true},
                        {name: "codeUpper",index:"codeUpper", width: 100,align:'center', search: true},
                        {name: "codeName", index:"codeName", width: 120,align:'center', search: true},
                        {name: "departmentName", index:"departmentName", width: 150,align:'center', search: true},
                        {name: "employeeName", index:"employeeName", width: 150,align:'center', search: true},
                        {name: "employeeContact", index:"employeeContact", width: 220,align:'center', search: true},
                        {name: "employeePhone", index:"employeePhone", width: 220,align:'center', search: true},
                        {name: "employeeEmail", index:"employeeEmail", width: 220,align:'center', search: true},
                    ],
                pager: '#pager',
                loadonce: true,
                rowNum: 10,
                rownumbers: true,
                gridview: true,
                width: 'auto',
                height: 'auto',
                rowList: [5, 10, 20, 50],
                viewrecords: true,
                caption: 'employee-List',
                autoencode: true,
                    jsonReader: {
                        // root: "rows",
                        // page: "page",
                        // total: "total",
                        // records: "records",
                        repeatitems: false,
                        id:"0",
                    },


                }).navGrid('#pager', { edit:true, add:true, del:true, search:true, refresh:true });

            $("#jqGrid").jqGrid('filterToolbar', {searchOperators : true ,stringResult: true, searchOnEnter: true });

</script>
<body>
<div>
        <table id="jqGrid"><tr><td/></tr></table>
        <div id="pager"></div>
    </div>
</body>


0
  • 답변 2

  • 초보자1212
    2k
    2020-12-03 13:54:02

    minified 된 파일말고 개발용 파일을 가져오셔서 같은 오류를 낸 다음에 

    오류가 알려주는 코드 라인을 따라가면서 어디에서 터졌나봐보세요

    저런 오류는 거의 대부분 undefined/null 이나 다른 종류의 데이터 타입에서 더 이상 nested 참조를 못하는데 하려고해서 생기는 경우입니다

    작성하신 코드내에서는 getAccessor 는 없는걸보니 저건 jQGrid 내장 메소드에서 호출하는 것으로 보이는데

    이건 jQGrid 를 잘 알지 못하면 답변 드리기 어렵고 질문자님도 본인이 jQGrid 공식 문서에서 뭔가 힌트를 찾을 수 없다고 판단되시면 코드를 까보시는게 유일한 방법입니다

  • 1l2h
    10
    2020-12-03 15:28:33

    @초보자1212

    조언 감사합니다.

    말씀하신대로 js 파일을 뒤져보니 getAccessor 메소드가 없더라구요.. 버전만 4가지정도 다운받아서 해봤는데... 다 제대로 동작안됐는데 이 메소드를 포함한 js파일을 찾아서 넣어주니 정상적으로 작동됩니다.ㅎㅎ 


    감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.