У меня есть данные, которые входят в мой PropertyListview, есть контейнер вокруг него, но когда я хочу обновить его с помощью Ajax, он ничего не делает! Как мне обновить PropertyListview с помощью Ajax?Wicket - Ajax PropertyListView
EDIT в фоновом режиме им с помощью JSON Разбор для анализа данных из метеостанция, что данные могут измениться много, поэтому я хочу, чтобы обновить данные в propertyListview
public class WeerPanel extends Panel {
public WeerPanel(String id) throws IOException {
super(id);
final WeerService weerService = new WeerServiceImpl();
PropertyListView<Weer> newview = new PropertyListView<Weer>("weer", weerService.getWeer()) {
@Override
protected void populateItem(ListItem<Weer> item) {
item.add(new Label("temperatuur"));
item.add(new StaticImage("type", String.format("images/%s.png", item.getModelObject().getType())));
item.add(new Label("omschrijving"));
}
};
final WeerVoorspellingService weerVoorspellingService = new WeerVoorspellingServiceImpl();
PropertyListView<WeerVoorspelling> hateView = new PropertyListView<WeerVoorspelling>("weersvoorspelling", weerVoorspellingService.getWeerVoorspelling()) {
@Override
protected void populateItem(ListItem<WeerVoorspelling> item) {
item.add(new Label("dag"));
item.add(new StaticImage("typeVoorspelling", String.format("images/%s.png", item.getModelObject().getType())));
item.add(new Label("minTemperatuur"));
item.add(new Label("maxTemperatuur"));
}
};
final WebMarkupContainer containerWeer = new WebMarkupContainer("containerWeer");
containerWeer.setOutputMarkupId(true);
containerWeer.add(hateView);
containerWeer.add(newview);
add(containerWeer);
add(new AbstractAjaxTimerBehavior(Duration.seconds(10)) {
@Override
protected final void onTimer(AjaxRequestTarget target) {
target.add(containerWeer);
}
});
}
}
Это какой-то код, который я делаю в фоновом режиме, его манекен, который каждый раз меняет температуру погоды случайным числом.
Random r = new Random();
int randomInt = r.nextInt(100);
weer.add(new Weer("rain", "Mooi bewolkt", randomInt, v.getVoorspellingen()));
Фиктивный код отлично, но до сих пор нет ничего изменений, чтобы увидеть на моей странице .... как если бы мой список разве получать новые данные ..
FIXED здесь код для людей, которые найдут это удобный
public class WeerPanel extends Panel {
public WeerPanel(String id) {
super(id);
add(createContainer());
add(new AbstractAjaxTimerBehavior(Duration.seconds(10)) {
@Override
protected final void onTimer(AjaxRequestTarget target) {
target.add(createContainer());
}
});
}
private final WebMarkupContainer createContainer() {
final WeerService weerService = new WeerServiceImpl();
PropertyListView<Weer> newview = null;
try {
newview = new PropertyListView<Weer>("weer", weerService.getWeer()) {
@Override
protected void populateItem(ListItem<Weer> item) {
item.add(new Label("temperatuur"));
item.add(new StaticImage("type", String.format("images/%s.png", item.getModelObject().getType())));
item.add(new Label("omschrijving"));
}
};
} catch (Exception e) {
e.printStackTrace();
}
WeerVoorspellingService weerVoorspellingService = new WeerVoorspellingServiceImpl();
PropertyListView<WeerVoorspelling> hateView = null;
try {
hateView = new PropertyListView<WeerVoorspelling>("weersvoorspelling", weerVoorspellingService.getWeerVoorspelling()) {
@Override
protected void populateItem(ListItem<WeerVoorspelling> item) {
item.add(new Label("dag"));
item.add(new StaticImage("typeVoorspelling", String.format("images/%s.png", item.getModelObject().getType())));
item.add(new Label("minTemperatuur"));
item.add(new Label("maxTemperatuur"));
}
};
} catch (Exception e) {
e.printStackTrace();
}
WebMarkupContainer containerWeer = new WebMarkupContainer("containerWeer");
containerWeer.setOutputMarkupId(true);
containerWeer.add(hateView);
containerWeer.add(newview);
addOrReplace(containerWeer);
return containerWeer;
}
}
Что именно вы пытаетесь сделать со своим звонком AJAX? Поменяйте два списка? – kgrad
Нет, совсем нет, в фоновом режиме, используя JSON Parse для анализа данных с метеостанции, данные могут сильно изменяться, поэтому я хочу обновить данные в propertyListview –