gwt 2.4 DataGrid - автоматически устанавливать ширину столбца? - PullRequest
1 голос
/ 10 октября 2011

У меня проблема с DataGrid в gwt 2.4. Я сделал таблицу с CellTable, и все работало нормально. Но мне нужен был фиксированный заголовок, а затем просто заменили CellTable на DataGrid. У меня была проблема с файлом .css, но это было решено.

Теперь проблема в том, что каждый столбец имеет фиксированную ширину, а таблица помещает каждую строку только в видимую часть экрана.

Это новые и старые снимки экрана, чтобы прояснить ситуацию:)

http://img832.imageshack.us/img832/5026/oldscreenshot.jpg

http://img834.imageshack.us/img834/1489/newscreenshot.jpg

Может кто-нибудь помочь сделать старомодно выглядящим, но с фиксированным заголовком.

Ответы [ 3 ]

5 голосов
/ 16 октября 2011

Вы можете установить фиксированную ширину для каждого столбца сетки данных:

dataGrid.setColumnWidth(sampleColumn, 40, Unit.PX);

и увеличьте общую ширину сетки данных:

dataGrid.setWidth("100%"); // choose the most useful in your app
dataGrid.setWidth("1400px");
2 голосов
/ 12 февраля 2013

Я не уверен, что правильный ответ, но я не думаю, что предыдущие респонденты поняли вопрос.По сути, вы хотите, чтобы dataGrid использовал «table-layout: auto» вместо «fixed».Это то, что делает cellTable.Столбцы таблицы автоматически масштабируются в зависимости от содержимого.Это легко для таблицы содержимого, но для замораживания заголовка dataGrid использует отдельный div / table для заголовка.Поэтому столбцы таблицы заголовков должны быть явно измерены на основе таблицы данных.Их также необходимо изменять каждый раз, когда изменяется таблица (размеры браузера и т. Д.).Я планирую добавить изменяемые размеры столбцов в dataGrid, так что я скоро столкнусь с этой же проблемой, и я ожидаю, что обновлю, когда у меня будет что-то более явное, если кто-то еще отслеживает этот поток ...

0 голосов
/ 06 августа 2012

нужно обернуть ваш контент в тд с внутренним div. и убедитесь, что для overflow-x установлено значение hidden.

table {
     overflow: hidden;
     white-space: nowrap;
     table-layout: fixed;
}

td div{
   overflow-x:hidden;
}
...