Hi, I am new to wicket and I'm having trouble determining the correct way to
implement a generic search page.
I created a page that contains a custom form panel for the search parameter
input, and a DataTable for displaying the results. The DataTable uses a custom
DataProvider which takes a condition object that is used to perform the find.
The condition is initially null, which causes the DataProvider to return all
objects - this works fine, and so does the navigation toolbar I added to the
table. (I'm attaching example code below.)
My question is: what is the correct way to update the table's contents? I have
the form panel's onSubmit() call onFind(), which creates a new condition
object, but I'm not sure what to do with it.
Should I have the onFind() method add a new DataTable with a new DataProvider?
Or keep a reference to the table and set a new provider? Am I on the right
track or way off base?
SearchPage.java
-------------
private EntityCondition condition = null;
SearchPage(String entityName) {
add(new SearchFormPanel("find", entityName) {
public void onSubmit(Map<String, Object> searchParameters) {
onFind(searchParameters);
}
});
IColumn[] columns = ...
EntityDataProvider entityDataProvider = new EntityDataProvider(entityName,
condition);
DataTable table = new DataTable<GenericValue>("results", columns,
entityDataProvider, 10);
table.addTopToolbar(new NavigationToolbar(table));
table.addTopToolbar(new HeadersToolbar(table, null));
add(table);
}
protected void onFind(Map<String, Object> searchParameters) {
condition = makeCondition(searchParameters);
}
...
SearchPage.html
-------------
<wicket:extend>
<div wicket:id="find"></div>
<table wicket:id="results" class="display"></table>
</wicket:extend>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]