복붙노트

[JQUERY] JQGRID에 API가 데이터를 게시하기 위해 고급 필터를 추가 할 수 있습니까?

JQUERY

JQGRID에 API가 데이터를 게시하기 위해 고급 필터를 추가 할 수 있습니까?

해결법


  1. 1.필터

    필터

    filters:'{"groupOp":"AND","rules":[{"field":"invdate","op":"gt","data":"2007-09-06"},{"field":"invdate","op":"lt","data":"2007-10-04"},{"field":"name","op":"bw","data":"test"}]}'
    

    질문에 포함 된 것은 JSON 버전의 객체로 직렬화되어 있습니다.

    var myfilter = {
        groupOp: "AND",
        rules: [
            { field: "invdate", op: "gt", data: "2007-09-06" },
            { field: "invdate", op: "lt", data: "2007-10-04" },
            { field: "name",    op: "bw", data: "test"       }
        ]
    }
    

    이는 동적으로 구축 될 수있는 쉽게 구축 될 수 있습니다 :

    // addPostDataFilters("AND");
    var myfilter = { groupOp: "AND", rules: []};
    
    // addFilteritem("invdate", "gt", "2007-09-06");
    myfilter.rules.push({field:"invdate",op:"gt",data:"2007-09-06"});
    
    // addFilteritem("invdate", "lt", "2007-10-04");
    myfilter.rules.push({field:"invdate",op:"lt",data:"2007-10-04"});
    
    // addFilteritem("name", "bw", "test");
    myfilter.rules.push({field:"name",op:"bw",data:"test"});
    
    // generate to top postdata filter code
    var grid = $("#list");
    grid.jqGrid({
        // all prarameters which you need
        search:true, // if you want to force the searching
        postData: { filters: JSON.stringify(myfilter)}
    });
    

    그리드가 이미 존재하면 사용할 수있는 설정으로 그리드를 다시로드하려는 경우

    grid[0].p.search = myfilter.rules.length>0;
    $.extend(grid[0].p.postData,{filters:JSON.stringify(myfilter)});
    grid.trigger("reloadGrid",[{page:1}]);
    

    대신에. 함수 JSON.Stringify는 가장 많은 웹 브라우저에서 기본적으로 지원되지만 확실합니다. 페이지에 json2.js를 포함해야합니다.

  2. from https://stackoverflow.com/questions/5272850/is-there-an-api-in-jqgrid-to-add-advanced-filters-to-post-data by cc-by-sa and MIT license