Extjsでは、現在のページのグリッドページに新しいデータ行を作成した後、フォームから詳細ページの編集を入力し、自動的に詳細ページを開いて編集できるようにしました。 3 時間を費やして、最終的に Extjs の最適な解決策を見つけました。結果はわずか 3 文ですが、おそらくこれは多くの Extjs 愛好家が知りたいこと、またはすでに知っていることだと思います。そのため、これを共有します。 extjs コミュニティのアイデアに私自身のアイデアを貢献してください。
リストの作成後、通常はプロンプトが表示されます。結果を直接確認したい場合は、最後の計画までスキップしてください。 >
オプション 1 (放棄)。新しいデータを作成した後、id 値を createform メソッドに送信します。これは一般の Web 開発者が最初に考える方法かもしれません。詳細ページにパラメータを渡し、詳細は ID を元にライブラリから該当するデータを検索してページに表示します。しかし、調査の結果、ページは現在のページのサブウィンドウを介して表示されており、2番目を表示したい場合は、グリッドの各行のデータを介してサブウィンドウのデータが渡されることがわかりました。 -level ページでは、まずデータをグリッドに表示する必要があり、値全体をレコードとして渡します。データを追加した後、リスト自体を更新する必要があります。リスト内の最新のデータを直接読み取って、それを直接渡す方が良いでしょう。これで 2 番目の計画になります ~
計画 2 (成功しました)。データが作成され、リストが更新された後、リスト内の最初の項目 (作成時間に従って並べ替えられるため) を選択状態に設定し、最初の項目をクリックするのと同じである onEdit メソッドを呼び出します。グリッド内のデータの行を編集し、[編集] ボタンをクリックすると、効果が得られます (追記: 私は非常に才能があるのでしょうか?)。データを保存した後、grid.selModel.selectRow(0) を呼び出し、次に Grid.onEdit() (独自に定義した編集メソッド。grid.getSelectionModel().getSelected() を通じて選択した行を取り出し、渡します)フォームのパラメータ)、ここで直接選択すると、選択したリストが更新される前の最初の項目になることに注意してください(必要な更新後の最初の項目ではありません)~~ ストアの負荷が読み込まれるため非同期で、笑、ここでは、次のようにこれら 2 つのメソッドを setTimeout 関数に入れる必要があります: