Как скрыть столбец в ячейке таблицы GWT? - PullRequest
9 голосов
/ 19 августа 2011

Я использую таблицу ячеек в GWT. В эту таблицу я добавляю эти столбцы.

    TextColumn<Document> idColumn = new TextColumn<Document>() {
        @Override
        public String getValue(Document object) {
            return Long.toString(object.getId());
        }
    };
    TextColumn<Document> refColumn = new TextColumn<Document>() {
        @Override
        public String getValue(Document object) {
            return object.getReferenceNumber();
        }
    };
    /*
     * DateCell dateCell = new DateCell(); Column<Contact, Date> dateColumn
     * = new Column<Contact, Date>(dateCell) {
     * 
     * @Override public Date getValue(Contact object) { return
     * object.birthday; } };
     */
    TextColumn<Document> nameColumn = new TextColumn<Document>() {
        @Override
        public String getValue(Document object) {
            return object.getDocumentName();
        }
    };
            table = new CellTable<T>();
    table.addColumn(idColumn, "Id");
    table.addColumn(refColumn, "Reference Number");
    table.addColumn(nameColumn, "Name");
}

Теперь у меня есть несколько запросов: Как скрыть столбец id? По щелчку строки, как я могу получить из выбранной строки? Пожалуйста, помогите мне. Заранее спасибо.

1 Ответ

14 голосов
/ 22 августа 2011

Хорошо, вы можете попробовать использовать фиксированный макет для CellTable и установить ширину определенного столбца, который вы хотите скрыть, равным 0px.Я использовал другой подход.

В моем случае у меня есть cellTable, который должен отображать столбец флажка, как только я нажимаю кнопку (которая переводит ячейку в режим редактирования).Я делаю это, создавая CheckBoxColumn и вставляя и удаляя его, когда я нажимаю на кнопку.Это выглядит примерно так:

@Override
public void insertCheckBoxColumn(Column<Object,Boolean> column) {
    if (cellTable.getColumnIndex(column) == -1) {
        cellTable.addColumn(column,"");
        cellTable.setColumnWidth(column,50, Unit.PX);
    }
}

@Override
public void removeCheckBoxColumn(Column<Object, Boolean> column) {
    int index = cellTable.getColumnIndex(column);
    if (index != -1)
         cellTable.removeColumn(index);
}

Однако обратите внимание, что вы можете столкнуться с этой проблемой в Google Chrome.

...