Create your own Component. Use a ListView, put it into a WebMarkupContainer. Show the WebMarkupContainer based on the TextField input and refresh the ListView in the OnChangeAjaxBehavior attached to the TextField.
This way you have full control over what you want to achieve.
Example code for the ListView:
private ListView getLv(){
ListView lv = new ListView(PANEL, new PropertyModel(this, "someList")) {
@Override
protected void populateItem(ListItem item) {
Integer type = item.getModelObject().getType();
if (type == 1) {
item.add(new PanelType1("panel", item.getModelObject().someIdMaybe));
} else if (type == 2) {
item.add(new PanelType2("panel", item.getModelObject().someIdMaybe));
}
}
};
return lv;
}