유료 라이센스 버전이 아닌 smartgwt를 사용하고 있으며 세 항목이있는 listgrid가 있습니다. 키, 값, 재설정.레코드를 삭제하고 즉시 다시 가져옵니다
리셋 필드는 값 변경을 재설정해야하는 버튼이며 여기서 내가 고심하는 곳입니다. 나는 reseted 할 클릭 된 행을 내 ListGrid되는 것이 간단
@Override
public void onClick(ClickEvent event)
{
DataSource ds = this.grid.getDataSource();
ds.removeData(record);
ds.fetchData();
this.grid.redraw();
}
으로 그리드를 구현하고 기록하기 위해 노력했다.
이 항목 만 제거합니다. 다시로드하면 다시로드됩니다 (올바른 값으로도 제거 요청을 받으면 내 서버가 수행하므로 다시로드됩니다.)하지만 바로 그 뒤에 있습니다. 나는 버튼을 클릭하고 조금 클릭 한 후에는 클릭하지 않는다.
fetchData와 redraw 요청을 결합하여이를 수행한다고 가정했습니다.
편집 : 좋아, 좀 더 코드, 내 ListGrid 및 레코드를 제거하고 다시 추가해야하는 RevertButton에 대한 내 생성자를 보여줍니다.
private static final String REVERT_NAME = "revertField";
public MyListGrid(final String name)
{
this.setDataSource(PropertyListDS.getInstance(name);
ListGridField keyField = new ListGridField(ConfigurationDataSourceFields.PROPERTY_NAME, "Property");
ListGridField valueField = new ListGridField(ConfigurationDataSourceFields.PROPERTY_VALUE, "Value");
ListGridField revertField = new ListGridField(REVERT_NAME, "Revert to Default");
valueField.setCanEdit(true);
this.setShowRecordComponents(true);
this.setShowRecordComponentsByCell(true);
this.setAutoFetchData(true);
this.setFields(keyField, valueField, revertField);
}
@Override
protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum)
{
String fieldName = this.getFieldName(colNum);
Canvas canvas = null;
if (REVERT_NAME.equals(fieldName))
{
canvas = new RevertButton(this, record);
}
return canvas;
}
private class RevertButton extends IButton implements ClickHandler
{
private final MyListGrid grid;
private final ListGridRecord record;
public RevertButton(final MyListGrid grid, final ListGridRecord record)
{
super();
this.setTitle("Revert to Default");
this.grid = grid;
this.record = record;
this.addClickHandler(this);
}
@Override
public void onClick(ClickEvent event)
{
DataSource ds = this.grid.getDataSource();
ds.removeData(record);
ds.fetchData();
this.grid.redraw();
}
}
내 이해에 따라 클라이언트 측 작업에서 제거하지만 서버 측에서 변경하지 않으시겠습니까? –
그것은 내가 원하는대로 양쪽 끝에서 작동;) 클라이언트가 주위에 비트를 클릭 할 때까지 클라이언트가 변경 사항을 보지 못합니다. 문제가 있습니다. – Nozdrum
그래서 시간 차이가 있다는 뜻입니까? 대기 시간? –