4

テーブル列の1つにdeleteButtonを設定したいと思います。

ActionCell<Entrata> deleteCell = new ActionCell<Entrata>("x",new Delegate<Entrata>() {
            @Override
            public void execute(Entrata object) {
                // rpc stuff.... 
            }
        });

わかりましたが、この行はエラーを生成します:

Column<Entrata,Entrata> deleteColumn = new Column<Entrata, Entrata>(deleteCell);

「列タイプをインスタンス化できません」

どう思いますか?

4

3 に答える 3

1

ここでは、作業コードを使用します。

仮定:

TYPE-セルテーブルの行に表示するデータのクラスは同じですか?データを削除するときにデータのインスタンスを参照する必要があると想定しているためです

public class DeleteColumn extends Column<TYPE, TYPE>
{
    public DeleteColumn()
    {

        super(new ActionCell<TYPE>("Delete", new ActionCell.Delegate<TYPE>() {
            @Override
            public void execute(TYPE record)
            {
                /**
                  *Here you go. You got a reference to an object in a row that delete was clicked. Put your "delete" code here
                  */
            }
        }));
    }

    @Override
    public TYPE getValue(TYPE object)
    {
        return object;
    }
};
于 2011-08-12T01:02:14.840 に答える
0

ドクから:

テーブル内の列の表現。列は、オンデマンドで各セルのビューデータを維持できます。新しいビューデータは、必要に応じて、セルのonBrowserEventメソッドによって作成され、列に格納され、セルの将来の呼び出しに渡されます。

したがって、次のように宣言する必要があります。

    Column<String, String> colum = new Column<String, String>(null) {

        @Override
        public String getValue(String object) {
            // TODO Auto-generated method stub
            return null;
        }
    };

それでも、削除ボタンをどのように実装するかは正確にはわかりません。残りのコードを提供していただければ幸いです。

于 2011-08-11T21:15:59.603 に答える
0

これは動作します

//table = initialized CellTable with content already loaded 

ActionCell editCell = new ActionCell<EmployeeObject>("remove", new ActionCell.Delegate<EmployeeObject>() {
            public void execute(EmployeeObject object){
                List<EmployeeObject> list = new ArrayList<EmployeeObject>(table.getVisibleItems());
                for(int i = 0; i < list.size(); i ++){
                    if(object.getFirstname().equals(list.get(i).getFirstname())){
                        list.remove(i);
                        break;
                    }
                }
                table.setRowData(list);
            }
        });

Column<EmployeeObject, ActionCell> editColumn = (new IdentityColumn(editCell));
于 2012-06-21T10:31:16.870 に答える