Getting the following error. Not sure what I am doing wrong. I've seen other JIRA issues opened along the same lines.
IllegalStateException when refreshing a WebMarkupContainer containing a AjaxFallbackDefaultDataTable where one of the columns is a AjaxEditableLabel which refreshes the markup container on submit Attached is the html + page + component to recreate the issue. Stack Trace as follows: java.lang.IllegalStateException: No Page found for component [MarkupContainer [Component id = cell, page = <No Page>, path = 1:cells:5:cell.QuantityLabel]] at org.apache.wicket.Component.getPage(Component.java:1658) at org.apache.wicket.ajax.AjaxRequestTarget.respondComponent(AjaxRequestTarget.java:689) at org.apache.wicket.ajax.AjaxRequestTarget.respondComponents(AjaxRequestTarget.java:605) at org.apache.wicket.ajax.AjaxRequestTarget.respond(AjaxRequestTarget.java:520) at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1172) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331) at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
package da.web.wicket.test; //~--- non-JDK imports -------------------------------------------------------- import java.util.ArrayList; import java.util.List; import da.web.wicket.structure.MainPageWithBorder; import da.web.wicket.test.datatable.SortableContactDataProvider; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel; import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings(value="all") public class TestAjaxDataTable extends MainPageWithBorder { /** * */ private static final long serialVersionUID = 1L; static Logger logger = LoggerFactory.getLogger(TestAjaxDataTable.class); public TestAjaxDataTable() { List columns = new ArrayList(); /* columns.add(new AbstractColumn(new Model("Actions")) { public void populateItem(Item cellItem, String componentId, IModel model) { cellItem.add(new ActionPanel(componentId, model)); } }); */ WebMarkupContainer wmc = new WebMarkupContainer("container"); wmc.setOutputMarkupId(true); add(wmc); columns.add(new PropertyColumn(new Model("ID"), "id")); columns.add(new PropertyColumn(new Model("First Name"), "firstName", "firstName")); columns.add(new PropertyColumn(new Model("Last Name"), "lastName", "lastName")); columns.add(new PropertyColumn(new Model("Home Phone"), "homePhone")); EditableQuantityPropertyColumn eqpc = new EditableQuantityPropertyColumn(new Model("Cell Phone"), "cellPhone"); eqpc.setCartContainer(wmc); columns.add(eqpc); wmc.add(new AjaxFallbackDefaultDataTable("table", columns, new SortableContactDataProvider(), 8)); /* AjaxFallbackDefaultDataTable dt = new AjaxFallbackDefaultDataTable("table"); add(dt); */ } } class EditableQuantityPropertyColumn extends PropertyColumn { QuantityLabel ql; WebMarkupContainer cartData; /** * */ private static final long serialVersionUID = 1L; static Logger logger = LoggerFactory.getLogger(EditableQuantityPropertyColumn.class); public EditableQuantityPropertyColumn(IModel model, String propertyExpression) { super(model, propertyExpression); } public EditableQuantityPropertyColumn(IModel model, String sortOrder, String propertyExpression) { super(model, sortOrder, propertyExpression); } public void populateItem(Item item, String componentId, IModel model) { IModel labelmodel = createLabelModel(model); ql = new QuantityLabel(componentId, labelmodel, model); ql.setCartContainer(getCartContainer()); item.add(ql); } protected IModel createLabelModel(IModel embeddedModel) { IModel m = super.createLabelModel(embeddedModel); return m; } public void setCartContainer(WebMarkupContainer d) { cartData = d; } public WebMarkupContainer getCartContainer() { return cartData; } } class QuantityLabel extends AjaxEditableLabel { /** * */ private static final long serialVersionUID = 1L; static Logger logger = LoggerFactory.getLogger(QuantityLabel.class); IModel originalmodel; public QuantityLabel(String id, IModel model, IModel originalmodel) { super(id, model); this.originalmodel = originalmodel; } @Override protected void onSubmit(AjaxRequestTarget target) { target.addComponent(container); super.onSubmit(target); } WebMarkupContainer container; public void setCartContainer(WebMarkupContainer container) { this.container = container; } } // ~ Formatted by Jindent --- http://www.jindent.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]