jqgrid post Data post 방식 에 파 라 메 터 를 누적 하여 원래 의 데 이 터 를 캐 시 하 였 습 니 다.

4327 단어
오늘 프로젝트 를 할 때 문 제 를 발 견 했 습 니 다. 우 리 는 하나의 선별 항목 이 있 습 니 다. 하 나 는 VIP 사용자 이 고 하 나 는 일반 사용자 이 며 다른 하 나 는 모든 사용자 입 니 다. 먼저 우리 의 selection 을 보 세 요.
<select name="" id="user_type">
    <option value="">  option>
    <option value="1">VIPoption>
    <option value="2">  option>
select>

매우 자주 사용 하 는 격식 인 후에 우 리 는 판단 을 할 것 이다.
1 var jqgrid_post_data = {};//   jqgrid   json  
2 if($("#user_type").val()){ //      , json  
3      jqgrid_post_data["user_type"] = $("#user_type").val();
4 }
5 jQuery("#table_list_1").jqGrid("clearGridData");
6 $("#table_list_1").jqGrid('setGridParam', {  //      
7         postData:jqgrid_post_data ,
8         page:this_page,
9 }).trigger("reloadGrid");

그러나 이것 은 우리 가 VIP 와 일반 사용자 에서 모든 데이터 로 전환 한 후에 조회 한 것 이 지난번 의 데이터 라 는 문 제 를 발견 했다.
예 를 들 어 제 가 VIP 의 사용자 데 이 터 를 한 번 찾 아 본 후에 저 는 모든 사용자 로 전환 되 었 습 니 다. 이때 jqgrid 는 조회 한 VIP 의 사용자 이지 만 저 희 는 jqgrid 를 인쇄 합 니 다.post_data 때 이 안 에는 user 가 없습니다.type 속성의.찾 아 보 니 jqgrid 캐 시 인 자 를 발 견 했 습 니 다.결과 방법 은 두 가지 로 나 뉘 는데 하 나 는 비교적 간단 하 다. 우리 가 모든 사용 자 를 선택 할 때 usertype 이 비어 있 음
1 jqgrid_post_data["user_type"] = '';

두 번 째 방법 은 다른 블 로 그 를 보고 알 게 된 것 입 니 다. 바로 reloadGrid 전에 아래 의 함 수 를 실행 하 는 것 입 니 다.
1 var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
2       $.each(postData, function (k, v) {
3             delete postData[k];
4 });

원래 의 매개 변 수 를 정리 한 후에 데 이 터 를 다시 불 러 오 는 것 이다.
      ,        ,     。    ,       ,               ,   jqgrid       ,       。        ,      ,    。

좋은 웹페이지 즐겨찾기