2012-12-04 4 views
2

저는 json 데이터 유형이 loadOnce: truejqGrid을 가지고 있습니다. filterToolBar 검색을 사용하고 있습니다. 모든 일치 항목을 반환하지는 않습니다. 표에는 이름이 인 검색 가능한 열이 있으며 값은 "Adkins, Joe"및 "Adkinson, Jane"입니다. 검색 문자열 "Adk"을 입력하면 반환되는 유일한 일치 항목은 "Adkins, Joe"입니다.FilterToolBar가 모든 일치를 반환하지 않습니다.

function loadmyGrid(dataUrl, selectUrl) { 
$("#myGrid").jqGrid({ 
    url: dataUrl + "?r=" + rand(), 
    datatype: "json", 
    mtype: 'GET', 
    rowNum: -1, 
    loadonce: true, 
    ignoreCase: true, 
    scroll: true, 
    scrollOffset: 0, 
    gridview: true, 
    colNames: ["Employee ID", "Name", "User Name", ""], 
    colModel: [ 
       { name: "EmployeeID", width: "125", align: "center", sortable: false, resizable: false, title: false, search: false }, 
        { name: "Name", width: "150", align: "center", sortable: false, resizable: false, title: false }, 
        { name: "UserName", width: "125", align: "center", sortable: false, resizable: false, title: false, search: false }, 
        { name: "UserKey", key: true, width: "135", align: "center", sortable: false, resizable: false, title: false, formatter: selectButtonFormatter, search: false}, 
      ], 
    emptyrecords: "Nothing to display",  
    beforeSelectRow: function() { return false; }, 
    gridComplete: function() { 
     $("#myGrid").setGridHeight("100%"); 
     $("#myGrid").filterToolbar({searchOnEnter: false, defaultSearch: "cn" }) 
    } 
}) 

답변

0

주요 오류가 잘못 rowNum: -1의 사용이다 : 여기

그리드의 정의입니다. 로컬 페이징을 막으려면 rowNum 값을 충분히 사용해야합니다. 예 : rowNum: 1000 또는 rowNum: 10000.

콜백 내부의 $("#myGrid") (예 : gridComplete)을 $(this)으로 대체하는 것이 좋습니다. url"?r=" + rand() 부분의 사용법은 불필요한 것으로 보입니다. $("#myGrid").filterToolbar의 호출은 gridComplete 외부로 이동해야하며 한 번만 호출 될 수 있습니다.

column templates을 추가로 사용하는 것이 좋습니다. 코드를 줄일 수 있고 더 쉽게 관리하고 읽을 수 있습니다.

+0

감사합니다. 올렉! rowNum 설정은 검색 문제를 해결했습니다. 또한 귀하의 추가 권장 사항을 구현할 것입니다. – MLS

+0

@ ML : 환영합니다! – Oleg

관련 문제