私は2つのテーブル持って更新されません。のFlexデータグリッドが正しく
SELECT pName, departments.deptName FROM people INNER JOIN people.deptID = departments.deptID;
:人{PID、はpName、DEPTID}および部門{DEPTID、DEPTNAME} を、このようなSQL文は私に人の名前と部署名を取得します
上記の動作は問題ありません。私は、deptNamesで設定されたFlexのDropDownListを持っています。私は、送信ボタンをクリックすると、私は問題なく選択した部門のIDを取得することができる午前:
protected function button_clickHandler(event:MouseEvent):void
{
person.pName=pNameTextInput.text;
person.deptID=pDepartmentDropDownList.selectedItem.deptID; //ID of selected department obtained correctly.
if (person.pID == 0)
{
createPersonResult.token=personService.createPerson(person);
}
else
{
updatePersonResult.token=personService.updatePerson(person);
}
}
私は人が追加されたときにデータグリッドを更新しようとcreatePersonresultハンドラを持っています。データグリッドは追加された新しい人物で更新されますが、部門の列では、ドロップダウンリストから選択された部門のIDが取得されます。私は、deptNameを表示するために、リフレッシュされたDataGridを得るためにフラッシュアプリケーションをリロードする必要があります。
このcreatePerson結果ハンドラに何かがありません。 Googleは大した助けをしなかった。上記のコメントから
protected function createPersonResult_resultHandler(event:ResultEvent):void
{
currentState="PeopleDetails";
person.pID=event.result as int;
peopleDg.dataProvider.addItem(person); //the problem might be here, more below.
peopleDg.setSelectedIndex(peopleDg.dataProvider.getItemIndex(person));
peopleDg.ensureCellIsVisible(peopleDg.selectedIndex);
}
、私は追加する人は確かに一つの属性は、各部門からの外国ID(DEPTID)であることを除いて、データグリッドに人物オブジェクトの属性を追加することを参照してください。
使用しているFlex SDKのバージョンは何ですか?私はFlash Builder for PHP 4.5を使用していますが、ドロップダウンリストコンポーネントのコンテンツアシストメニュー(Ctrl + Space)で.selectedLabelを取得できません。 – shailenTJ
コンボボックスの代わりに4.5ドロップダウンで更新されました。そのショットを与えて、私に知らせてください。 :) – Nate
私はこれが「うまくいかない」ことに気づいたが、コメントする前に試してみた。 deptNameはPersonクラスのメンバーではないことに注意してください。つまり、PersonテーブルにdeptNameフィールドはありません。私たちはdeptIDフィールドしか持っていません。また、私のINNER JOINステートメントのために、私はデータグリッドフィールドdeptIDの下にある部署の名前を取得します。私の質問のSQLステートメントから、私はdepartments.deptNameを明確に取得しますが、FB DataGridはそれを見ません。結果はdeptIDの下に置かれます。奇妙な。すべての手がかりは? – shailenTJ