복붙노트

[JQUERY] 있는 jqGrid는 : filterToolbar 선택 상자를 채울 beforeProcessing를 사용하여

JQUERY

있는 jqGrid는 : filterToolbar 선택 상자를 채울 beforeProcessing를 사용하여

해결법


  1. 1.당신이 이미 거의 정확한 코드를 사용하는 것이 나에게 보인다. 가장 문제는 기존 필터 도구 모음을 새로 고칠 필요가 있다는 것입니다. 당신은 내가이 질문에 제안 destroyFilterToolbar의 방법을 사용할 수 있습니다. 내가 (여기 참조 및 풀 요청) trirand에 나중에 제안과 지금있는 jqGrid의 주요 코드에 포함. 코드는 아래와 같이 할 수 있습니다.

    당신이 이미 거의 정확한 코드를 사용하는 것이 나에게 보인다. 가장 문제는 기존 필터 도구 모음을 새로 고칠 필요가 있다는 것입니다. 당신은 내가이 질문에 제안 destroyFilterToolbar의 방법을 사용할 수 있습니다. 내가 (여기 참조 및 풀 요청) trirand에 나중에 제안과 지금있는 jqGrid의 주요 코드에 포함. 코드는 아래와 같이 할 수 있습니다.

    beforeProcessing: function (data) {
        var $self = $(this),
            newProductValues = data.pVals,
            newEnvironmentValues = data.eVals,
            newTypeValues = data.tVals,
            cmProduct = $self.jqGrid("getColProp, "Product"),
            cmEnvironment = $self.jqGrid("getColProp, "Environment"),
            cmType = $self.jqGrid("getColProp", "Type"),
            isChanged = false;
    
        if (cmProduct.editoptions.value !== newProductValues) {
            $self.jqGrid("setColProp", "Product", {
                searchoptions: { value: ":All;" + newProductValues },
                editoptions: { value: newProductValues }
            });
            isChanged = true;
        }
        if (cmEnvironment.editoptions.value !== newEnvironmentValues) {
            $self.jqGrid("setColProp", "Environment", {
                searchoptions: { value: ":All;" + newEnvironmentValues },
                editoptions: { value: newEnvironmentValues }
            });
            isChanged = true;
        }
        if (cmType.editoptions.value !== newTypeValues) {
            $self.jqGrid("setColProp", "Environment", {
                searchoptions: { value: ":All;" + newTypeValues },
                editoptions: { value: newTypeValues }
            });
            isChanged = true;
        }
        if (isChanged) {
            // recreate filter toolbar to refresh the data
            $self.jqGrid("destroyFilterToolbar");
            $self.jqGrid("filterToolbar", {
                stringResult: true,
                searchOnEnter: true,
                searchOperators: true,
                defaultSearch: "cn"
            });
        }
    }
    

    (나는 새로운 검색 연산자를 포함 : 재미있을 수있는 진정한 옵션)

    당신은 내가 필터 도구 모음에서 기존의 필터를로드 할이 질문에 설명 된 기능 refreshSerchingToolbar의 호출 솔루션을 결합 할 수 있습니다.

    그런데 당신은 당신이 사용하는 값 ​​속성의 형식을 변경 고려할 수 있습니다. 대신 사용 문자열 형식 "; 제품 2; 등 : 제품 2 제품 1 제품 1 등"의 {: "제품 1"제품 2 : "제품 2"등 "등"제품 1} 당신은 개체의 양식을 사용할 수 있습니다.

  2. from https://stackoverflow.com/questions/17407378/jqgrid-using-beforeprocessing-to-populate-filtertoolbar-selection-boxes by cc-by-sa and MIT license