0
votes

I am using a datatable inside a panel and the panel is set to autorefresh every 60 sec. the panel occassionally seems to pull values that are not passed to the Object. I am using PropertyColumn to add columns to the data table. Is there a way to disable cache in wicket or data table specifically

I have a webservice that returns a list of contacts. This list is passed to all the panels below

In LoadContactPanel new ContactPanel(ViewPanel.getContentPanelId() , getContactListModel());

public IModel<List<Contact>> getContactListModel() {
    List<Contact> listofmodels = //get list from a webservice call
    return new ListModel<>(listofmodels);
}

In ContactPanel I load another panel called AccordianPanel

The AccordianPanel contains a RepeatingView

Each RepeatingView is a panel and in the panel, I am adding a DefaultDataTable

The source of the DefaultDataTable is ContactDataProvider that extends SortableDataProvider

This is the code of the model method in ContactDataProvider

@Override
public IModel<Contact> model(final Contact object) {

    return new AbstractReadOnlyModel() {
        private static final long serialVersionUID = 1L;

         @Override
        public Object getObject() {
                return object;
        } 
    };
}

In this situation, what should be converted to a LoadableDetachableModel. The one that is returned from the webservice or the one in ContactDataProvider

1

1 Answers

1
votes

Maybe you are loading data from a model which is stored in memory. You should use LoadableDetachableModel to load data each time component is rendered. Not sure that it answers your question as you provided too few details, please show some code.