Of course Here is part of the code The hiercarchy is webpage ---- border --------- (WebMarkupContainer) RMAsContainer rmaList ----- PageableListView rmaView , AjaxPagingNavigator
public class RMARecords extends WebPage { private static final long serialVersionUID = 1L; private Request rmaRequest = new Request(); private RequestDetail requestDetail; private RMAsContainer rmaList; private PageableListView rmaView; private WebMarkupContainer dContainer; public RMARecords(final PageParameters pps) { Border border = new RMABorder("rmaBorder"); add(border); rmaList = new RMAsContainer("showRequests"); border.add(rmaList); rmaList.add(new AjaxPagingNavigator("navigator", rmaView) { @Override protected void onAjaxEvent(AjaxRequestTarget target) { target.addComponent(rmaList); } }); dContainer = new WebMarkupContainer("DContainer"); dContainer.setOutputMarkupId(true); requestDetail = new RequestDetail("requestDetail"); requestDetail.setVisible(false); dContainer.add(requestDetail); border.add(dContainer); } class RMAsContainer extends WebMarkupContainer { public RMAsContainer(String id) { super(id); setOutputMarkupId(true); IModel itemList = new LoadableDetachableModel() { protected Object load() { String email = SecurityContextHolder.getContext() .getAuthentication().getName(); return ((RMAApplication) getApplication()).getRMAService() .getRMAs(email); } }; add(rmaView = new PageableListView("request", itemList, 10) { protected void populateItem(ListItem item) { // display the text of the item Request req = (Request) item.getModelObject(); String time = req.getDate().toString().substring(0, 19); AjaxLink idLink = new IDLink("idLink", req.getId()); idLink.add(new Label("id", req.getId().toString())); item.add(idLink); item.add(new Label("time", time)); item.add(new Label("reference", req.getLine_reference())); item.add(new Label("status", req.getStatus())); item.add(new Label("note", req.getNote())); } }); } class IDLink extends AjaxLink { Long reqid; public IDLink(String id, Long reqid) { super(id); this.setOutputMarkupId(true); this.reqid = reqid; } @Override public void onClick(AjaxRequestTarget target) { if (reqid != null) { setRmaRequest(((RMAApplication) getApplication()) .getRMAService().getRequestByID(reqid)); } requestDetail.setVisible(true); target.addComponent(dContainer); } } } } On 7/6/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
> I'm using wicket 1.2.6. > > JS error 'Object expected' in html code happens when > > I first submit a form (no matther it is submitted from ajax button or > normal button), > > then click the page link ( there are AjaxPagingNavigator in this page) > > finally I click the ajax component, error happens. > > > Further more, after more testings, I found errors also happened when I > click AjaxPagingNavigator twice or three times, then click page link to > view page which contains ajax components. Could you show us some of your code? Eelco ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
package rmapage; import java.util.ArrayList; import java.util.List; import org.acegisecurity.context.SecurityContextHolder; import rmahib.model.Address; import rmahib.model.Customer; import rmahib.model.Request; import wicket.PageParameters; import wicket.ajax.AjaxRequestTarget; import wicket.ajax.markup.html.AjaxLink; import wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator; import wicket.markup.html.WebMarkupContainer; import wicket.markup.html.WebPage; import wicket.markup.html.basic.Label; import wicket.markup.html.border.Border; import wicket.markup.html.list.ListItem; import wicket.markup.html.list.ListView; import wicket.markup.html.list.PageableListView; import wicket.model.IModel; import wicket.model.LoadableDetachableModel; import wicket.model.PropertyModel; public class RMARecords extends WebPage { private static final long serialVersionUID = 1L; private Request rmaRequest = new Request(); private boolean detailVisable = false; private RequestDetail requestDetail; private RMAsContainer rmaList; private PageableListView rmaView; private WebMarkupContainer dContainer; public RMARecords(final PageParameters pps) { Border border = new RMABorder("rmaBorder"); add(border); rmaList = new RMAsContainer("showRequests"); border.add(rmaList); rmaList.add(new AjaxPagingNavigator("navigator", rmaView) { @Override protected void onAjaxEvent(AjaxRequestTarget target) { target.addComponent(rmaList); } }); dContainer = new WebMarkupContainer("DContainer"); dContainer.setOutputMarkupId(true); requestDetail = new RequestDetail("requestDetail"); requestDetail.setVisible(false); dContainer.add(requestDetail); border.add(dContainer); } class ItemsContainer extends WebMarkupContainer { public ItemsContainer(String id) { super(id); setOutputMarkupId(true); System.out.println("items update"); IModel itemList = new LoadableDetachableModel() { protected Object load() { return getItems(); } }; add(new ListView("item", itemList) { protected void populateItem(ListItem item) { // display the text of the item item.add(new Label("item_category", new PropertyModel(item .getModel(), "product.category.name"))); item.add(new Label("item_product", new PropertyModel(item .getModel(), "product.description"))); item.add(new Label("item_amount", new PropertyModel(item .getModel(), "quantity"))); item.add(new Label("item_reason", new PropertyModel(item .getModel(), "return_reason"))); } }); } } class RequestDetail extends WebMarkupContainer { private AddressContainer addrContainer; private ItemsContainer itemsContainer; public RequestDetail(String id) { super(id); System.out.println("Request Detail"); setOutputMarkupId(true); Label email = new Label("r_email", new PropertyModel(this, "r_email")); email.setOutputMarkupId(true); Label reference = new Label("r_lineReference", new PropertyModel( this, "r_lineReference")); reference.setOutputMarkupId(true); Label time = new Label("r_time", new PropertyModel(this, "r_time")); time.setOutputMarkupId(true); Label status = new Label("r_status", new PropertyModel(this, "r_status")); status.setOutputMarkupId(true); Label note = new Label("r_note", new PropertyModel(this, "r_note")); note.setOutputMarkupId(true); addrContainer = new AddressContainer("address"); itemsContainer = new ItemsContainer("showItems"); add(email); add(reference); add(time); add(status); add(note); add(addrContainer); add(itemsContainer); } public String getR_email() { Customer cust = getRmaRequest().getCustomer(); return cust != null ? cust.getEmail() : ""; } public String getR_lineReference() { return getRmaRequest().getLine_reference(); } public String getR_time() { return getRmaRequest().getDate().toString().substring(0, 19); } public String getR_status() { return getRmaRequest().getStatus(); } public String getR_note() { return getRmaRequest().getNote(); } } class AddressContainer extends WebMarkupContainer { private static final long serialVersionUID = 1L; public AddressContainer(String id) { super(id); this.setOutputMarkupId(true); Label label; label = new Label("ship_from_line1", new PropertyModel(this, "ship_from_addr.line1")); label.setOutputMarkupId(true); add(label); label = new Label("ship_from_line2", new PropertyModel(this, "ship_from_addr.line2")); label.setOutputMarkupId(true); add(label); label = new Label("ship_from_city", new PropertyModel(this, "ship_from_addr.city")); label.setOutputMarkupId(true); add(label); label = new Label("ship_from_postcode", new PropertyModel(this, "ship_from_addr.postcode")); label.setOutputMarkupId(true); add(label); label = new Label("ship_from_country", new PropertyModel(this, "ship_from_addr.country")); label.setOutputMarkupId(true); add(label); label = new Label("bill_to_line1", new PropertyModel(this, "bill_to_addr.line1")); label.setOutputMarkupId(true); add(label); label = new Label("bill_to_line2", new PropertyModel(this, "bill_to_addr.line2")); label.setOutputMarkupId(true); add(label); label = new Label("bill_to_city", new PropertyModel(this, "bill_to_addr.city")); label.setOutputMarkupId(true); add(label); label = new Label("bill_to_postcode", new PropertyModel(this, "bill_to_addr.postcode")); label.setOutputMarkupId(true); add(label); label = new Label("bill_to_country", new PropertyModel(this, "bill_to_addr.country")); label.setOutputMarkupId(true); add(label); } public Address getShip_from_addr() { Address ship_from_addr = getRmaRequest().getShip_from(); if (ship_from_addr == null) ship_from_addr = new Address(); return ship_from_addr; } public Address getBill_to_addr() { Address bill_to_addr = getRmaRequest().getBill_to(); if (bill_to_addr == null) bill_to_addr = new Address(); return bill_to_addr; } } class RMAsContainer extends WebMarkupContainer { public RMAsContainer(String id) { super(id); setOutputMarkupId(true); IModel itemList = new LoadableDetachableModel() { protected Object load() { String email = SecurityContextHolder.getContext() .getAuthentication().getName(); return ((RMAApplication) getApplication()).getRMAService() .getRMAs(email); } }; add(rmaView = new PageableListView("request", itemList, 10) { protected void populateItem(ListItem item) { // display the text of the item Request req = (Request) item.getModelObject(); String time = req.getDate().toString().substring(0, 19); AjaxLink idLink = new IDLink("idLink", req.getId()); idLink.add(new Label("id", req.getId().toString())); item.add(idLink); item.add(new Label("time", time)); item.add(new Label("reference", req.getLine_reference())); item.add(new Label("status", req.getStatus())); item.add(new Label("note", req.getNote())); } }); } class IDLink extends AjaxLink { Long reqid; public IDLink(String id, Long reqid) { super(id); this.setOutputMarkupId(true); this.reqid = reqid; } @Override public void onClick(AjaxRequestTarget target) { if (reqid != null) { setRmaRequest(((RMAApplication) getApplication()) .getRMAService().getRequestByID(reqid)); } requestDetail.setVisible(true); target.addComponent(dContainer); } } } public List getItems() { List list = new ArrayList(getRmaRequest().getItems()); return list; } public Request getRmaRequest() { return rmaRequest; } public void setRmaRequest(Request r) { rmaRequest = r; } public boolean isDetailVisable() { return detailVisable; } public void setDetailVisable(boolean detailVisable) { this.detailVisable = detailVisable; } }Title: RMA Records
RMA ID | Time | Line Reference | Status | Note |
---|---|---|---|---|
[ID] | [Time] | [Reference] | [Status] | [Note] |
RMA Time
Line Reference
|
|
|||||||||||||||||||||||||
RMA Request Detail
Category | Product | Quantity | Reason |
---|---|---|---|
item_category | item_product | item_amount | item_reason |
status
note
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/
_______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user