Extjs에서는 현재 페이지의 그리드 페이지에 새로운 데이터 행을 생성한 후, 폼을 통해 상세페이지 편집을 입력했는데, 이때 해당 페이지가 편집을 위해 자동으로 상세페이지가 열리도록 하기 위해, 3시간을 투자하여 마침내 Extjs에서 가장 적합한 솔루션을 찾았지만 결과는 단 세 문장뿐인 것 같습니다. 많은 Extjs 매니아들이 알고 싶어하거나 이미 알고 있는 내용이 아닐까 싶습니다. 당신은 extjs 커뮤니티에 내 자신의 아이디어 중 일부를 기여하기 위한 것입니다.
목록이 생성된 후 일반적으로 프롬프트가 표시됩니다. 이제 처음 몇 가지 아이디어를 알려드리겠습니다. 결과를 직접 보고 싶으시면 마지막 계획 세트로 건너뛰셔도 됩니다~
옵션 1(폐기). 새 데이터를 생성한 후 createform 메소드에 id 값을 보냅니다. 이는 일반 웹 개발자가 생각하는 첫 번째 방법으로, 상세 페이지에 매개변수를 전달한 후, 상세 페이지에서 ID를 기준으로 해당 데이터를 라이브러리에서 검색하여 페이지에 표시하는 방식일 것입니다. 그러나 조사 결과 현재 페이지의 하위 창을 통해 페이지가 표시되고 두 번째 페이지를 표시하려는 경우 하위 창의 데이터가 그리드의 각 데이터 행을 통해 전달되는 것으로 나타났습니다. -레벨 페이지에서는 먼저 그리드에 표시해야 합니다. 데이터를 읽으려면 전체 값을 레코드로 전달해야 합니다. 데이터를 추가한 후 목록 자체를 업데이트해야 합니다. 목록에 있는 최신 데이터를 직접 읽어서 직접 전달하는 것이 좋습니다. 그러면 두 번째 계획이 나옵니다~
계획 2(성공) ) 데이터가 생성되고 목록이 업데이트된 후 목록의 첫 번째 항목(생성 시간에 따라 정렬되므로)을 선택한 상태로 설정하고 첫 번째 항목을 클릭하는 것과 동일한 onEdit 메서드를 호출합니다. 그리드에 있는 데이터 행을 클릭하고 편집 버튼을 클릭합니다. 효과(ps: 제가 재능이 있나요?) 좋아, 데이터 저장 메소드 이후에 Grid.selModel.selectRow(0)를 호출한 다음, Grid.onEdit()(자신이 정의한 편집 메소드, Grid.getSelectionModel().getSelected()를 통해 선택한 행을 꺼내고 통과) 매개변수를 양식에 적용), 여기에서 직접 선택하면 선택한 목록이 업데이트되기 전의 첫 번째 항목이 됩니다(우리가 원하는 업데이트 후 첫 번째 항목이 아님)~~ 스토어의 로드가 로드되기 때문에 주의하세요 비동기적으로, 하하, 여기서는 이 두 가지 메소드를 다음과 같이 setTimeout 함수에 넣어야 합니다: