1

StudentId、StudentName、studentLastname という名前のウィンドウに 3 つのフォーム フィールドがあります。StudentID を入力すると、studentname と studentlastname の値が入力されます。どうやってやるの?リスナーを使用する必要があることはわかっていますが、データベースから値を正確にロードする方法がわかりません。フォームの送信/リロードではなく、AJAx リクエストである必要があります。

ご存知でしたら教えてください。Extjs 4 と Spring MVC を使用しています。

ありがとう。Jm

4

2 に答える 2

1

答えはどこまで行けばいいですか?サーバー側のコードも期待しますか?

最も基本的なレベルでは、プロキシを使用してモデルを定義する必要があります。

Ext.define('Student', {
    extend: 'Ext.data.Model',
    fields: ['id', 'firstName', 'lastName'],

    proxy: {
        type: 'ajax',
        url : 'students'
    }
});

次に、studentIdを入力すると、次のことができます。

var iStudent = Ext.ModelManager.getModel('Student');

iStudent.load( studendId, {
    success: function( aStudent ) {
        console.log( aStudent );
        // Feed the student details into the form.
    }
});
于 2012-08-07T14:21:51.153 に答える
1

Extは機能が豊富で、やりたいことを行うための複数の方法を提供します。時間をかけてどのように機能するかを学ぶ準備ができていない場合は、JQueryや別のDOMマニピュレーター、あるいは生のjavascriptやhttpリクエストに固執することをお勧めします。

あなたが知る必要があるすべてはSenchaウェブサイトのAPIドキュメントにたくさんの例とガイドとかなり良いフォーラムがあります。しかし、学ぶべきことがたくさんあります。

サーバーサイドコードに関する情報はほとんどありません。Springを教えるのはSenchaの仕事ではありません。サーバーは、リクエストを受け入れて、Extが使用できる形式の単純な「{success=true}」応答またはデータで返すことができる必要があります。例えば。XMLまたはJSON。DIRECT APIもありますが、最初のアプリにはお勧めしません。

JSON文字列を使用したい場合、サーバーの応答は次のようになります。

[{"studentId":12345,"studentFirstName":"John","studentLastName":"Smith"},
{"studentId":12346,"studentFirstName":"Jenny","studentLastName":"Brown"},
{"studentId":12347,"studentFirstName":"Able","studentLastName":"Seaman"}]

これを使用して、Ext.ProxyおよびExt.Modelを介してExt.Storeにデータを入力します(lzhakiの回答を参照)

テキストボックスはExt.ComponentManagerを介して利用でき、Ext.Component(s)によって提供されるメソッドを使用して、.setValue()などのメソッドを実行できます。

Extを始めるときは大変な作業になる可能性があり、DOMの操作をはるかに超えており、プログラマーとアプリの保守性に提供する価値を得るには、Extがどのように機能するかを理解する必要があります。

于 2012-08-07T17:53:51.077 に答える