gpt4 book ai didi

gwt - GXT 3 网格高度和滚动

转载 作者:行者123 更新时间:2023-12-04 05:27:18 26 4
gpt4 key购买 nike

我的环境是:GWTP 0.7、GWT 2.4.0、GXT 3.0.1。这个问题在某种程度上与 GXT 3 grid scrolling issue 相关。但除了那里的解决方案对我不起作用。

我的情况:

public abstract class AbstractGridView extends ViewImpl implements AbstractGridPresenter.MyView {

protected final VerticalLayoutContainer cont = new VerticalLayoutContainer();

protected final VerticalLayoutData toolBarData = new VerticalLayoutData(1, -1);
protected final VerticalLayoutData contentData = new VerticalLayoutData(1, -1); //grid's layout config

protected final ToolBar toolBar = new ToolBar();
protected final TextButton addItemButton = new TextButton(ADDBUTTON_TEXT);

@Inject
protected AbstractGridView() {
toolBar.add(addItemButton);
cont.add(toolBar, toolBarData);
}

public Widget asWidget() {
return cont;
}
}
public class DepartmentsView extends AbstractGridView implements DepartmentsPresenter.MyView {
private final Grid<Department> grid;
private final ColumnModel<Department> model;
private final List<ColumnConfig<Department, ?>> config = new ArrayList<ColumnConfig<Department,?>>();
private final ListStore<Department> store = new ListStore<Department>(PROPS.key());
@Inject
public DepartmentsView() {
super();
config.add(new ColumnConfig<Department, Long>(PROPS.id()));
config.get(config.size() - 1).setHeader(IDCOLUMN_HEADER);
config.add(new ColumnConfig<Department, String>(PROPS.name()));
config.get(config.size() - 1).setHeader(NAMECOLUMN_HEADER);
config.add(new ColumnConfig<Department, String>(companyNameProvider));
config.get(config.size() - 1).setHeader(COMPANYCOLUMN_HEADER);

model = new ColumnModel<Department>(config);

grid = new Grid<Department>(store, model);
grid.getView().setAutoFill(true);

filters.initPlugin(grid);
filters.setLocal(true);
filters.addFilter(idFilter);
filters.addFilter(nameFilter);
filters.addFilter(companyFilter);

cont.add(grid);
}
}

所有这些都注入(inject)到BaseView中的BorderLayoutContainer中:
public class BaseView extends ViewImpl implements BasePresenter.MyView {
private final Viewport viewPort = new Viewport();

private final BorderLayoutContainer borderContainer = new BorderLayoutContainer();

private final ContentPanel west = new ContentPanel();
private final ContentPanel north = new ContentPanel();
private final ContentPanel center = new ContentPanel();
private final BorderLayoutData westData = new BorderLayoutData(200);
private final BorderLayoutData northData = new BorderLayoutData();
private final BorderLayoutData centerData = new BorderLayoutData();
@Inject
public BaseView() {
borderContainer.setBorders(true);
west.setResize(true);
center.setResize(false);
center.setHeight("auto");
north.setResize(false);
westData.setCollapsible(false);
westData.setCollapseMini(false);
westData.setMargins(new Margins(5, 5, 5, 5));
northData.setCollapsible(false);
northData.setMargins(new Margins(5));
northData.setSize(57);
centerData.setCollapsible(false);
centerData.setMargins(new Margins(5));
borderContainer.setWestWidget(west, westData);
borderContainer.setCenterWidget(center, centerData);
borderContainer.setNorthWidget(north, northData);
viewPort.add(borderContainer);
}

public Widget asWidget() {
return viewPort;
}

@Override
public void setInSlot(Object slot, Widget content) {
setMainContent(content);
}

private void setMainContent(Widget content) {
center.clear();
if (content != null) {
center.setWidget(content);
}
}
}

因此,如果我在将我的网格添加到 VerticalLayoutContainer(续)时不附加 contentData,它会呈现为 VerticalLayoutData(1, -1),即:根本不计算网格的高度,它的内容在页面底部流动没有滚动条可以到达底部页面边框下方的任何行。如果我在问题开头的链接中设置 VerticalLayoutData (1, 1),我只能看到网格的标题和网格的内容高度计算为 0px(尽管它存在于页面的 DOM 中)。并且仅当我手动设置高度时,例如 setHeight(300) 网格的高度设置像素的数量和垂直滚动条显示到网格存储中的任何行,尽管人们可以很容易地理解手动设置网格的高度没有任何原因Viewport 管理的应用程序窗口的解决方案。

我在小部件配置中错过了什么,或者这是一个有任何合理解决方法的错误?

最佳答案

我发现布局问题:

center.setResize(false); // BaseView's constructor

这使得 BorderLayoutContainer 的 ContentPanel 不会调整子小部件 (VerticalLayoutContainer) 的大小以适应。

关于gwt - GXT 3 网格高度和滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13045151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com