gpt4 book ai didi

java - Gwt TextInputCell 不显示更改的值

转载 作者:行者123 更新时间:2023-11-30 09:33:43 25 4
gpt4 key购买 nike

我有一个包含一列 TextInputCells 的 CellTable。

当我通过 UI 手动设置值时,bean 被修改。但是,然后,当我将值直接设置到 bean 中时,我无法使表显示修改。它会始终保留我手动分配的内容。

这是我的专栏:

FieldUpdater<MyBean, String> myFu = new FieldUpdater<MyBean, String>() {
@Override
public void update(int index, MyBean object, String value) {
object.setValue(value);
}
};

Column<MyBean, String> myCol = new Column<MyBean, String>(new TextInputCell()) {
@Override
public String getValue(MyBean object) {
return object.getValue();
}
};

这是 Action :

@UiHandler("myButton")
public void myButton_onClick(ClickEvent event) {
for (MyBean my : listOfBeans)
my.setValue("value");
}

我尝试在操作后调用 table.redraw() 或清除并重新填充 ListDataProvider,但它没有改变任何东西。

我能做什么?

谢谢

最佳答案

好的,我找到了一个(牵强的)方法。这很糟糕,但很管用。

int inputTextColumnPos; // position of your column

...

@UiHandler("myButton")
public void myButton_onClick(ClickEvent event) {
for (MyBean my : listOfBeans) {
my.setValue("value");

// get the cell you want to update
TextInputCell cell = (TextInputCell) table.getColumn(inputTextColumnPos).getCell();
// re-create the view data for the cell because the current one isn't updated
TextInputCell.ViewData viewData = new TextInputCell.ViewData("value");
// CRUSH the other one
cell.setViewData(my, viewData);
}

// because we're never too sure
table.redraw();
}

关于java - Gwt TextInputCell 不显示更改的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038881/

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