0

今日、この問題に遭遇しました。何か助けが必要かもしれません。Dojo の 1.6.1 バージョンを使用していますが、これはクロス バージョンの問題です。

次の問題を再現する手順は非常に簡単です。

  1. Filtering Select dijit.form.FilteringSelectの dojo doc リンクをクリックします。
  2. ドキュメント ページで、最初の FilteringSelect サンプルをクリックします。
  3. Codeglass ウィンドウのサンプルで、フィルターをクリックして選択し、「California」に「x」を追加して、無効な状態にします。
  4. 集中している間に、「x」の文字を削除します。ここで問題が発生します。技術的には値は正しいですが、dijit はまだエラー状態のようです (フォーカスを失っていない限り)。dijit を反応させて正しくレンダリングしたいのですが、フォーカスを失わずに、無効な状態の原因となっている文字を削除します。

回避策のアイデアはありますか?

ありがとうございました。

4

1 に答える 1

1

わかった。他のすべての人が興味を持っている場合、解決策は「非常に」簡単でした。 dijit.form.FilteringSelect._refreshState() を使用するだけです。アンダースコアの接頭辞は誰かのお茶ではないかもしれませんが、それが正しい状態にする唯一の方法でした。

私たちの場合、独自のオブジェクトにラップされた dojox.data.QueryReadStore を使用しており、継承された fetch() メソッドの onComplete イベントに接続する際に見つけた適切なトリガーが必要だったため、少し注意が必要でした。

于 2012-04-19T03:49:54.677 に答える