Как обновить таблицу в GWT, не фокусируя ее? - PullRequest
0 голосов
/ 02 сентября 2011

Я использую Google Web Toolkit (GWT) 2.1.

У меня есть GWT Grid (на самом деле это просто таблица HTML), которую я использую для ввода данных.Когда вы нажимаете на определенные элементы вне сетки, она меняет содержимое в сетке.Я добавляю / удаляю стили CSS, чтобы скрыть определенные строки в сетке на основе того, что выбрано за пределами сетки.Стиль, который я добавляю и удаляю, выглядит следующим образом:

.thegrid .hiderow, .thegrid .hiderow div, .thegrid .hiderow td, .thegrid .hiderow *, .thegrid .hiderow input {
    display: none;
    overflow: hidden;
    height: 0;
}

Я должен был сделать это, чтобы IE6 правильно скрывал строки.Все отлично работает, кроме (сюрприз, сюрприз) в IE6.В IE6 строки скрыты должным образом, но, когда предполагается, что строки будут отображаться снова после удаления стиля, таблица сохраняет уменьшенный размер, который был при скрытии строк.Когда я фокусирую таблицу, щелкая по ней, она изменяет размер таблицы и показывает все строки.

Есть ли способ увеличить таблицу до нужного размера в IE6 после удаления«скрыть» стиль от элементов?Я не хочу фокусировать внимание на таблице, потому что акцент должен быть сделан на элементе, который пользователь щелкнул за пределами таблицы.

1 Ответ

0 голосов
/ 07 октября 2011

Вместо использования CSS для скрытия строк вы можете установить видимость строки, используя JavaScript в качестве обходного пути. В GWT это работает так:

int row = ...;
Grid table = ...;
if(shouldEnableRow(row)) {
    table.getRowFormatter().setVisible(row, true);
} else {
    table.getRowFormatter().setVisible(row, false);
}

Это переводит на вызов JavaScript в DOM. Предполагалось, что настройка видимости через CSS будет иметь тот же эффект, что и во всех протестированных нами браузерах, кроме IE6 и IE7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...