0

4つの列を含む1つのグリッドがあり、どこかの列にTextFieldがあり、どこかにComboBoxがあります。これは、特定のColumnConfigのレンダラーを呼び出すことで実現しました。各行には、「保存」という名前のボタンが1つあります。

ユーザーはtextFieldのコンテンツに変更を加えることもできますが、そのtextFieldコンテンツを今すぐ取得する方法が必要です。

ここに画像の説明を入力してくださいテキストフィールド自体を取得できません。store.getAt(0)を使用してテキストフィールドを取得しようとすると、その時点で、ユーザーが現在変更したものではなく、最初はテキストフィールドのコンテンツが表示されます。

サーバーコード

    List<AccountResult> results = new ArrayList<AccountResult>();

for (int i = 0; i < listAccounts.size(); i++) {

Account account = listAccounts.get(i);

AccountResult accountResult=new AccountResult();
accountResult.setActionId(account.getId());
accountResult.setAccountName(account.getAccountName());
accountResult.setEmailId(account.getAccountEmail());
accountResult.setMobileNo(account.getAccountcontactNum());
accountResult.setAccountDescription(account.getAccountDesc());

results.add(accountResult);
}

クライアントコード

ListStore<AccountResult> store = new ListStore<AccountResult>();
store.add(response.getAccountDetails());


List<ColumnConfig> configs = new ArrayList<ColumnConfig>();


ColumnConfig accountNameColumn = new ColumnConfig();
accountNameColumn.setId(AccountResult.ACCOUNT_NAME);
accountNameColumn.setHeader(Constants.VA_ACCOUNT_NAME);
accountNameColumn.setWidth(110);
accountNameColumn.setRenderer(getTextAndViewRenderer());
configs.add(accountNameColumn);

getTextAndViewRenderer()関数で

accountNameTextField = getTextField(null, data, 80, Constants.VA_ACCOUNT_NAME_ID+rowIndex, Constants.VA_ACCOUNT_NAME_ID, false, false);
hp.add(accountNameTextField);

ButtonのhandleEventで、TextFieldまたはそのコンテンツを取得するために何を書く必要がありますか

private Listener<ButtonEvent> getActionListener(final Action action, final AccountResult result, final ListStore<AccountResult> store, final Grid<AccountResult> grid, final String property,final ColumnData config, final int rowIndex) {
return new Listener<ButtonEvent>() {


public void handleEvent(ButtonEvent be) {


}
};
}

私を助けてください.....ありがとう

4

1 に答える 1

3

TextFieldセルウィジェットをレンダリングしていますが、テキストフィールドの値を変更した後のモデルの更新がありません。デフォルトのグリッド編集テクニックを使用してみませんか? http://staging.sencha.com:8080/examples-dev/#ExamplePlace:inlineeditablegrid

于 2012-09-04T09:05:59.327 に答える