복붙노트

[JQUERY] 어떻게 검색에 내장 / 필터 상자를 사용하지 않는있는 jqGrid 데이터를 필터링하기

JQUERY

어떻게 검색에 내장 / 필터 상자를 사용하지 않는있는 jqGrid 데이터를 필터링하기

해결법


  1. 1.당신은 문제가 매우 쉬운 기능과 트리거 ( 'reloadGrid')를 포함 postData를 매개 변수와 관련하여 해결 될 수있다. 나는 생각보다 상세하게 설명하려고합니다.

    당신은 문제가 매우 쉬운 기능과 트리거 ( 'reloadGrid')를 포함 postData를 매개 변수와 관련하여 해결 될 수있다. 나는 생각보다 상세하게 설명하려고합니다.

    "GET"우리가 MTYPE를 사용하자. 표준 검색 / 필터 상자 인터페이스를 표시 한 후 할 수있는 유일한 방법은, URL에 몇 가지 추가 매개 변수의 추가 서버에 전송하고 그리드 데이터를 다시로드합니다. (예를 들어, 어떤 선택 컨트롤이나 체크 박스) / 검색 필터링에 대한 자신의 인터페이스를 가지고 있다면 당신은 자신 만 APPEND 당신의 URL을해야 트리거 ( 'reloadGrid')의 관련 그리드를 다시로드합니다. 당신이 원하는 어떤 방법을 선택할 수 있습니다 그리드의 정보를 재설정하십시오. 예를 들어, 당신은 당신이 "아니오 필터링 '과 같은 옵션이 선택 컨트롤에 포함 할 수 있습니다.

    내가 DropDownList로 변경하면 코드가 대답에서 코드처럼 보이는 방법 asp.net MVC에있는 jqGrid 다시로드해야 더 정확합니다 :

    var myGrid = jQuery("#list").jqGrid({
        url: gridDataUrl,
        postData: {
            StateId: function() { return jQuery("#StateId option:selected").val(); },
            CityId: function() { return jQuery("#CityId option:selected").val(); },
            hospname: function() { return jQuery("#HospitalName").val(); }
        }
        // ...
    });
    //
    var myReload = function() {
        myGrid.trigger('reloadGrid');
    };
    var keyupHandler = function (e,refreshFunction,obj) {
        var keyCode = e.keyCode || e.which;
        if (keyCode === 33 /*page up*/|| keyCode === 34 /*page down*/||
            keyCode === 35 /*end*/|| keyCode === 36 /*home*/||
            keyCode === 38 /*up arrow*/|| keyCode === 40 /*down arrow*/) {
    
            if (typeof refreshFunction === "function") {
                refreshFunction(obj);
           }
        }
    };
    
    // ...
    $("#StateId").change(myReload).keyup(function (e) {
        keyupHandler(e,myReload,this);
    });
    $("#CityId").change(myReload).keyup(function (e) {
        keyupHandler(e,myReload,this);
    });
    

    사용자 변경 ID = StateId 또는 (마우스 또는 키보드) ID = CityId 또 다른 선택 상자와 선택 상자에서 옵션을 선택한 경우, 함수 myReload 단지있는 jqGrid에 데이터를 다시로드 강제하는 호출됩니다. 있는 jqGrid 우리를 위해 할 수있는 $ 아약스 요청을 해당시, postData를 매개 변수의 값은 데이터 매개 변수로 $ 아약스로 전달됩니다. 데이터의 속성에서 일부 기능이 있다면, 이러한 기능은 $ 아약스에 의해 호출됩니다. 선택 상자의 실제 데이터가로드되고 모든 데이터가 서버로 전송되는 데이터에 추가됩니다 그래서. 당신은 당신의 서버 부분에서이 매개 변수의 읽기 구현할 필요가있다.

    postData를 매개 변수의 데이터가 URL에 추가됩니다 그래서 (문자 '?'와 '&'자동으로 추가됩니다 및 공백 같은 모든 특수 기호는 평소와 같이 인코딩됩니다). postData를의 사용의 장점은 다음과 같습니다

    당신은 몇 가지 "더 필터링"또는 선택 상자 StateId에서 "모든"항목을 사용하지 않는 경우, 당신은에서 서버 URL에 추가해야 StateId 매개 변수의 값을 계산하는 기능을 수정할 수 있습니다

    StateId: function() { return jQuery("#StateId option:selected").val(); }
    

    다음과 같은 뭔가 :

    StateId: function() {
        var val = jQuery("#StateId option:selected").val();
        return val === "all"? "": val;
    }
    

    당신은 매개 변수로 빈 값을받은 경우 서버 측에서 당신은 더 StateId 필터링하지하게한다.

    선택적으로 당신은 myGrid.setCaption ( 'A 텍스트')를 사용할 수 있습니다; 그리드 제목을 변경합니다. 이 그리드의 데이터가 어떤 기준으로 필터링되어, 사용자가 더 명확 볼 수 있습니다.


  2. 2.(올렉의 도움으로)이 함께했다 나는 같은 요구 사항을 가지고 있었고, :

    (올렉의 도움으로)이 함께했다 나는 같은 요구 사항을 가지고 있었고, :

    기본적으로, 사용자는 "직원 이름"텍스트 상자에 입력을 시작하고 즉시 결과를있는 jqGrid에 표시하세요.

    내가 이것을 구현하는 방법의 자세한 내용은 여기 :

    있는 jqGrid - 변경 필터 / 팝업 형태로 검색 - 페이지에 평평하게하는 -이 아닌 대화

    내가 특별히 사전에 내있는 jqGrid에 대한 JSON의 모든 데이터를로드하고 각 문자를 입력 할 때 아이폰 / 안드로이드 장치에이 코드를 실행할 때 즉, 대용량 데이터 세트에 대한 지연이 있습니다.

    그러나, 데스크탑 웹 애플 리케이션을 위해, 그것은 훌륭한 솔루션, 그리고 차종은 사용자에 대한 많은 friendler을있는 jqGrid.


  3. 3.ReloadGrid ()와 JQuery와 함수를 사용하여 당신은 당신의 자신의 사용자 정의 필터링 기능을 할 수 있습니다.

    ReloadGrid ()와 JQuery와 함수를 사용하여 당신은 당신의 자신의 사용자 정의 필터링 기능을 할 수 있습니다.

  4. from https://stackoverflow.com/questions/2928371/how-to-filter-the-jqgrid-data-not-using-the-built-in-search-filter-box by cc-by-sa and MIT license