magento 사용자 정의 모듈에서 컬렉션을로드 할 때 필터를 재설정하는 방법


9

관리 그리드에 'imei'의 검색 결과를 표시하기 위해 백엔드에서 사용자 정의 모듈을 만들었습니다.

1) 아래는 imei를 검색하는 홈페이지입니다. 여기에 이미지 설명을 입력하십시오

2) 검색 결과 페이지.

여기에 이미지 설명을 입력하십시오

3) 검색 후 imei 텍스트 필드 검색에 23과 같은 값을 입력하십시오. 여기에 이미지 설명을 입력하십시오

4) 이제 홈페이지로 돌아가서 다른 값을 검색합니다.

여기에 이미지 설명을 입력하십시오

5)하지만 이제는 레코드를 찾을 수 없지만 해당 특정 검색에 대한 레코드가 있습니다.

여기에 이미지 설명을 입력하십시오

이 일이 발생하기 때문에 컬렉션을로드 할 때 필터를 재설정해야합니다.

답변:


3

사용자 정의 모듈에서 grid.php 파일을 편집하십시오.

기본적으로,

public function __construct()
{
 parent::__construct();
 $this->setId('productsGrid');
 // This is the primary key of the database
 $this->setDefaultSort('id');
 $this->setDefaultDir('ASC');
 $this->setSaveParametersInSession(true);
 $this->setUseAjax(true);
}

코드를 다음과 같이 변경하십시오.

public function __construct()
{
    parent::__construct();
    $this->setId('productsGrid');
    // This is the primary key of the database
    $this->setDefaultSort('id');
    $this->setDefaultDir('ASC');
    $this->setUseAjax(true);
}

0

필터 값 base64_encoded를 해당 컨트롤러에 전달해야합니다. 필터 값은에 의해 처리됩니다 Mage_Adminhtml_Block_Widget_Grid::_prepareCollection().

값은 먼저 디코딩 된 다음 세션에서 설정됩니다.

    $data = $this->helper('adminhtml')->prepareFilterString($filter);
    $this->_setFilterValues($data);

grid.js 객체를 인스턴스화하기 시작합니다. 메소드를 살펴 보자 doFilter()하고 resetFilter().

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.