0

今は書き直す人手がありませんが、ExtJS で新しい開発を行い、時間があるときに古いものを書き直したいと思っています。また、古いフォームを ExtJS で作成されたように見せたいとしましょう。これにより、ユーザーは古いフォームと新しいフォームの間で完全にショックを受けることはありません。挑戦し続けるために、これは ExtJS 2.2 [sic] に準拠する必要があることも付け加えておきます。

以下のように、html を Panel に配置して完了するなど、簡単なことで済むことを願っていました。そのようなありません。

var pnlForm = new Ext.Panel({
    width:400,
    title:'Panel with a form',
    renderTo: Ext.getBody(),
    html: '<form>Test<br><input type="text"><br><input type="text"><br><input type="button" value="spam"></form>'
});

失敗した ExtJS Panelige のスクリーンショット

これは明らかに、中間にデフォルトのルック アンド フィール (つまり、ルック アンド フィールが「ない」) html を持つ ExtJS パネルにすぎません。

そして、私は本当にこのルートに行きたくないのですが、この記事の巧妙な「HTMLフォームをExtJSに変換する」機能も試しました。それはうまくいきませんでしたが、それでも私は何かを変形させるよりも、ルック アンド フィールを統合したいと思っています。

既存の HTML フォーム コードをロンダリングして、新しい ExtJS コンテンツの外観に合わせる簡単な方法はありますか?

4

2 に答える 2

2

実際には3つのオプションのみ:

  1. 適切な Ext JS 作成構文を使用するようにコードを書き直せば、問題なく動作するはずです (これを行うことに反対しているように聞こえます)。
  2. Ext JSが出力するマークアップをミラーリングし、同じCSSクラス名を使用して既存のCSSを活用する必要があることを除いて、投稿したようなことをしてください
  3. 上記と同じように行いますが、Ext JS マークアップを 1:1 で再作成する必要なく、独自のマークアップの Ext JS ルック アンド フィールに一致する独自のカスタム CSS を記述します。

どの方法を選択しても、多少の努力は必要です。#2 と #3 の欠点は、おそらく視覚的には同等であっても、フィールドの動作や検証などに関して、エンド ユーザーにバグとして出くわす可能性のある大きな機能上の違いがあることです。これは、日付ピッカーのような特殊な入力が必要ないことを前提としています。

これには魔法の弾丸はありません。もしそれが私だったら、私は努力をして、一度正しい方法でそれを行い、それで終わります(#1). 他のオプションを選択しても、最終的にはやり直すことになります。

于 2012-04-19T03:57:07.193 に答える
0

これらのフォームを ExtJs スタイルに変換する方が簡単で生産的だと思います。perl などを使用して、ある種のパーサーを作成できます。

于 2012-04-19T00:44:50.193 に答える