問題タブ [extjs4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
window - ExtJS 4: コンテナ内のウィンドウ
東、西、南の領域を持つビューポートの中央領域 (ボーダー レイアウト) でウィンドウを開くアプリケーションがあります。私が知る限り、これらのウィンドウを開くには 2 つの方法があり、どちらにも注意事項があります。
.add()
1 つ目は、window コンポーネントをそのコンテナー (中央領域) に追加するために使用します。この方法には、次の問題があります。
東/西の領域が展開/折りたたまれても、ウィンドウの位置は変更されません。たとえば、幅が 200px の西の領域で、西の領域が折りたたまれており、ウィンドウが中央の領域の西端から 150px に配置されている場合、西の領域が展開され、中央の領域の西の端が 200px 移動しますが、ウィンドウは所定の位置にとどまり、拡張された西側の領域と重なります。ウィンドウを移動しようとすると、その設定により中央領域の西端にスナップバックしますが
constrainHeader: true
、展開/折りたたみ時に再配置する必要があります。Z-Index 管理: ウィンドウはヘッダーによってのみ制約されるため、ウィンドウの本体は中央領域の南端の下にドラッグできます。理想的には、このように配置された場合、南地域の下に表示されるはずですが、上に表示されます。同様に、東または西の領域がフローティングされている (展開されていない) 場合、それらは重なり合うほど近くに配置されたウィンドウの上にも表示されます。ウィンドウは中央領域の子として追加されているように見えますが、実際には中央領域の要素の DOM 子ではありません。したがって、それらの z インデックスは中央領域ではなく、ページ本体に対して相対的です。そのため、カスタム zseed でカスタム ZIndexManager を使用しても、開いているすべてのウィンドウの z-index が他の領域の z-index を下回ることを保証することはできません。
ウィンドウを拡大して元のサイズに戻すと、元の位置は、西側領域の表示幅に等しい量だけ右に移動します。領域が折りたたまれている場合は、ヘッダーのみが表示されるため、わずかな量です。それ以外の場合は全幅。
ウィンドウを開く 2 番目の方法はrenderTo
、中央領域の要素を値として設定オプションを使用することです。これにより、上記の問題 1) および 2) が解決されます。ウィンドウの要素が中央の領域の要素の実際の DOM 子であるため、東/西の領域が展開/折りたたまれたときにウィンドウが正しく再配置されます (したがって、それらの z インデックスは中心領域)、z-index 管理の問題はもはや問題ではありません。でも:
Ext.AbstractComponent のドキュメントには、コンポーネントをコンテナの子コンポーネントとして追加するときに renderTo を使用しないように記載されています。これは、コンテナ レイアウト マネージャーが処理する必要があるためです。これはフローティング コンポーネントに関連していますか?
上記の 3) と同様の問題 - ウィンドウの最大化と復元は正常に行われますが、ウィンドウをドラッグ アンド ドロップすると同様の東方向への移動が発生し、より明白になります。ウィンドウをドロップすると、ウィンドウはドロップされた場所の右側にいくらか配置されます。その量は、西側領域の可視幅と同じ (またはそれに近い) です。西部地域が拡大されると、これは特に耳障りです。
これらの問題 (maximise-restore の問題を除く) はすべて、次の単純なアプリケーションで確認できます。
これらのアプローチのいずれかが他のアプローチよりも優れているか、リストされているすべての問題を克服するために適用できるか?
アップデート:
両方の方法を一緒に使用することは、おそらくもっと早く思いついたはずです。そうすることで、東/西の領域が展開/縮小されたときにウィンドウが正しく再配置され、z インデックスの問題がなく、最大化/復元時にウィンドウが正しく配置されないことを意味します。朗報です!ただし、ウィンドウはドラッグ アンド ドロップ時に正しく配置されません。これは、最も明白で厄介な問題です。なぜこれが起こっているのか、それを止める方法についてのアイデアはありますか (ドロップされたときに、ウィンドウの x 位置から西領域の幅を手動で差し引く以外)?
combobox - extjs4コンボボックスの変更は、別のコンボボックスデータストアも変更し、値を選択します
これはばかげた質問かもしれませんが、コンボボックスの選択された値が変更されたときに、別のコンボボックスのストアデータを変更する可能性があるかどうかを尋ねたいと思います。
紛らわしいかもしれないので、明確な例を挙げましょう...
comboboxAには国の名前を含むデータストアがありますcomboboxBには都市の名前を含むデータストアがあります
したがって、のデータは次のcomboboxA
ようになります。
また、comboboxB
の値comboboxA
が「USA」の場合のデータは次のようになります。
ただし、comboboxAの値が「England」の場合、comboboxBのデータは次のようになります。
どうすればそれができますか?
私は試しました:
私のコードに何か問題がありますか?
model-view-controller - ExtJS4 - JSON をボタンにバインドする MVC ツールバー
ツールバー、タブパネル、およびナビゲーション パネルがビューポートにバインドされた MVC アプリケーションがあります。ツールバーには、セッションのユーザー名が表示されたログアウト ボタンが必要です。だから私はサーバーを要求します。ストアとモデルをツールバー コントローラーに設定します。
javascript - Ext JS でクリック イベントをタブにバインドする
もう一度アロハ、そう。
私は、フロントエンド作業のためのほぼすべての ExtJS であるプロジェクトに取り組んでいます。私はバージョン 4.0.0 を使用していますが、これは知っておく必要があると思います。次のようなコードがあります。
それらのいくつか
ここでの大きな問題は、イベントを実際のタブにバインドできるようにする必要があることです。イベントをタブ パネルとタブ バーにバインドできることは認識していますが、実際にはクリック イベントをパネル内のタブの 1 つにバインドする必要があります。私はこれに沿って何かを試しました:
ただし、問題は、私が知る限り、実際のパネル自体にバインドされ、タブバーのタブにはバインドされないことです。興味深いことに、機能に関する限り、実際のパネルにバインドすることさえありません。コンソールのログ情報が表示されないためです。
いずれにせよ、イベントをタブに直接バインドする方法を知っている人はいますか? または、タブに直接アクセスする方法さえありますか? 私は ExtJS API ドキュメントをふるいにかけましたが、まだ何も見つかりません。:D
明確にするために、タブの変更にフックしようとしているわけではありません。タブをクリックする実際のクリックイベントにフックしようとしています。マウスの中ボタンがクリックされているかどうかを確認して、そうであればタブを閉じることができるようにするためです。
json - JSONStore を使用して単純なコンボボックスを EXTjs 4 で動作させることができないのはなぜですか?
これは私を狂気に駆り立てています。次のJSファイルがあります。
Myは次の形式でデータを/sites/getsites.do
返します。JSON
おそらくデータにアクセスするための推奨される方法ではないことdata[0].raw["sites"]
はわかっていますが、データが入力されていることを確認し、 136 を取得していsites
ます。
combobox
DOESレンダリング。ただし、ライブ検索は機能せず、エントリはありません。
ExtJS は初めてです。
ヒントをいただければ幸いです。
ありがとう
アップデート
このコードは機能します
これはしません
なしでproxy
(および を指定してurl
) 実行すると、プロキシが指定されていないというエラーが表示されます。
ありがとう
アップデート
うわぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ!!!!!!
わかった。ここが正しいJSONStore
みんな、ありがとう。これがどれほど難しいか信じられませんでした。主な理由は、良いチュートリアルが見つからなかったからです。笑
javascript - Extjs 4: iFrame ウィンドウを作成する
Extjs で iFrame ウィンドウを作成する必要があります。以前の ExtJS 3.x では、次のようにしました。
しかし、Window
ExtJS 4 の Class には bodyCfg がないようです。
iFrame ExtJS 4 ウィンドウを作成する方法についてのアイデアはありますか?
extjs - レコードが見つからない場合の ExtJS グリッド メッセージ
ExtJS 4.0 グリッドを使用しており、レコードが見つからない場合にグリッド領域内にメッセージ (または HTML、またはコンポーネント) を表示したいと考えています。私はしばらく彼らのコードを調べてきましたが、これが彼らのライブラリにネイティブに存在するという証拠を見つけることができないようです. これに使用できる構成または方法はありますか、それとも自分で作成する必要がありますか?
どうも
javascript - ExtJS4-MVCストア、データの取得
ストア、モデル、ビュー(ツールバー)を備えたコントローラーがあります:
私の問題はinitLogoutButton関数にあります。ajaxリクエストから取得したユーザーの唯一のインスタンスを取得する必要があります(常に1つのインスタンスのみ)。jsコンソールでリクエストを確認できます。すべて問題ありませんが、このデータで変数や配列を設定することはできません。
さらに、store.count()関数は0を返します。
extjs - extjs4で構成'forceFit'を表示しますか?
extjs3では、Ext.grid.Viewに構成プロパティがありましたforceFit
。
extjs4でこれに相当するものは何ですか?
extjs - Ext.Defineでxtypeを作成し、TabPanelアイテムで呼び出します:[]
私はextjs全般、特に4バージョンは初めてです。
クラスを作成しました:
次に、tabPanelアイテムでXTYPEの形式でこのクラスを呼び出したいと思います:[]:
私はこれが好きでした:
まだ運がない、私が得るのは:
Cannot create an instance of unrecognized alias: widget.MyPanel"
あなたは考えなければならない、なんて初心者だ……;-)
誰か助けてください!!!