2

SmartClient GWTライブラリを使用しています(ここで Smartclient GWT ショーケースを参照してください)。

レコードをクリックするとフィールドが編集可能になる ListGrid UI を作成しようとしています。例のように:

違いは、独自のカスタム GWT RPC サービスを使用し、ListGridRecord を独自の DataSource に手動で追加していることです。レコードは表示されますが、フィールドをクリックしても編集できません。GWTRPCDataSource 実装を使用してカスタム DataSource を作成し、executeFetch メソッドを適切にオーバーライドしました。

XML DataSource の例を使用して、適切に編集可能に設定された ListGridRecords を作成する特別な処理はありますか?

たとえば、例と同じように CountryXMLDS.java を使用していますが、カスタム レコードを 1 つ追加しています (編集可能にしたい人口フィールド以外のすべてのフィールドを削除しました)。レコードが表示されますが、レコードをクリックしてもフィールドを編集できません。

    ListGridField populationField = new ListGridField("population", "population");
    populationField.setType(ListGridFieldType.INTEGER);
    populationField.setCanEdit(true);

   countryGrid.setFields( populationField);

    countryGrid.setCanEdit(true);
    countryGrid.setEditEvent(ListGridEditEvent.CLICK);


    ListGridRecord record = new ListGridRecord();
    record.setAttribute("population", "5");
    CountryXmlDS.getInstance().addData(record);
4

1 に答える 1

1

問題が何であれ、それはあなたが共有した詳細にはありません. 次の手順を試してください。

  1. DataSource を使用して ListGrid で setDataSource() を呼び出していることを確認してください

  2. ListGrid フィールドの名前が DataSource のフィールドと一致していることを確認してください。大文字と小文字が区別されます

  3. DataSource で宣言された primaryKey があることを確認してください。レコードを識別する方法がない限り、編集を保存する方法はありません

  4. 開発者コンソールでメッセージを探す

    http://forums.smartclient.com/showthread.php?t=8159#aConsole

  5. ショットガン アプローチ: ListGrid.canEditCell() をオーバーライドし、必要なものをすべて返します。これにより、field.canEdit などのすべての宣言型設定がオーバーライドされます。

于 2010-02-09T19:56:22.087 に答える