I think some of the older versions of wicket would sometimes omit header contributions. When the error happens, check to see if wicket-ajax.js is included in the page. Also, you might want to upgrade to 1.2.6 and see if that fixes the issue.
best, jim On 6/8/07, Francisco Diaz Trepat - gmail <[EMAIL PROTECTED]> wrote: > James, sorry I took so long to respond. I tried to put PageLinks in the > menu. > > And I could swear that the frequency of "error" drop, but some times it > still happens. > > I am using wicket 1.2.5. > > > f(t) > > On 6/6/07, James McLaughlin <[EMAIL PROTECTED]> wrote: > > Looks good. What version of wicket are you using? And the second time > > you click DossierSearch, the time when no wicket ajax debug shows up, > > do a view source and see if the proper wicket-ajax js files are in the > > head section. Another thing I would suggest is using Bookmarkable > > links in your menu for Dossier search. You are using regular links, > > and that is why your url changes. > > > > best, > > jim > > > > On 6/6/07, Francisco Diaz Trepat - gmail < [EMAIL PROTECTED]> > wrote: > > > Here is the video. > > > > > > It is .AVI file made with CamStudio, an Open-source project. > > > > > > and it is inside a rar. > > > > > > f(t) > > > > > > > > > > > > > > > On 6/6/07, James McLaughlin <[EMAIL PROTECTED]> wrote: > > > > Hi Francisco, > > > > I can't see anything logically wrong with your code, all though there > > > > are things I would have done differently. What is the output of the > > > > wicket ajax debug panel when you click on the ajax submit button? > > > > > > > > If you want some advice, I would suggest not using a pageablelistview > > > > and not keeping your search results as an instance member (unless they > > > > are very expensive to create). Instead, look into using > > > > DefaultDataTable or extending DataTable. That way you can put all your > > > > search logic in your IDataProvider (such as SortableDataProvider), and > > > > retrieve only the results you will display in the current page, and > > > > not carry them around in the session after the request is over. Hope > > > > this helps. > > > > > > > > best, > > > > jim > > > > > > > > On 6/6/07, Francisco Diaz Trepat - gmail > <[EMAIL PROTECTED] > > > > wrote: > > > > > Sorry but I cannot find what the problem is. I've search Nabble. > > > > > > > > > > --------------------------------- > > > > > > > > > > > > > > > > > > > > Hello every one, I have a page that uses a panel (code ahead) that > has a > > > > > form with an AJAX button, it works fine, but some times I have to > click > > > on > > > > > the Search button 2 times to make it work. I think it has to do with > > > URLs or > > > > > something because when it happens it changes the url. > > > > > > > > > > The code for the page that uses the following panel I don't include > > > because > > > > > it only has a statement saying add(new SearchPanel(etc... > > > > > > > > > > Here is the code, can some one help? > > > > > > > > > > ps: If any other comments like, your code sucks, please also include > > > them. > > > > > > > > > > thanks a bunch > > > > > > > > > > f(t) > > > > > > > > > > and here is the code: > > > > > > > > > > package ch.logismata.wicket.panels.ajax; > > > > > > > > > > import ch.logismata.serverwrapper.DossierSearch ; > > > > > import > ch.logismata.serverwrapper.DossierSearchResult ; > > > > > import > > > ch.logismata.serverwrapper.DossierSearchResultList; > > > > > import ch.logismata.wicket.pages.NewDossier ; > > > > > import ch.logismata.wicket.panels.BasePanel; > > > > > import java.io.Serializable; > > > > > import java.util.ArrayList ; > > > > > import wicket.AttributeModifier; > > > > > import wicket.Component; > > > > > import wicket.PageParameters; > > > > > import wicket.ajax.AjaxRequestTarget; > > > > > import > wicket.ajax.markup.html.form.AjaxSubmitButton ; > > > > > import > > > > > > > > > wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator > > > > > ; > > > > > import wicket.markup.html.WebMarkupContainer; > > > > > import wicket.markup.html.basic.Label ; > > > > > import wicket.markup.html.form.Form ; > > > > > import wicket.markup.html.form.TextField; > > > > > import wicket.markup.html.link.Link; > > > > > import wicket.markup.html.list.ListItem ; > > > > > import wicket.markup.html.list.PageableListView; > > > > > import wicket.markup.html.panel.FeedbackPanel ; > > > > > import wicket.model.AbstractReadOnlyModel; > > > > > import wicket.model.CompoundPropertyModel ; > > > > > import wicket.model.Model; > > > > > import wicket.model.ResourceModel; > > > > > > > > > > /** > > > > > * Panel to make a Dossier Search and display the results > > > > > * > > > > > * @author gm > > > > > */ > > > > > public class DossierSearchPanel extends BasePanel { > > > > > private SearchDossierModel > > > m_cSearchDossierModel = new > > > > > SearchDossierModel(); > > > > > private ArrayList<DossierSearchResult> > > > m_cSearchResults = new > > > > > ArrayList<DossierSearchResult>(); > > > > > public DossierSearchPanel(String id) { > > > > > //Call super base panel > > > > > super(id); > > > > > // create feedback panel to show errors > > > > > final FeedbackPanel feedback = new > > > > > FeedbackPanel("searchFeedback"); > > > > > //add feedback panel > > > > > feedback.setOutputMarkupId(true); > > > > > add(feedback); > > > > > > > > > > // create form with markup id setter so it can be updated > via > > > ajax > > > > > Form form = new Form("dossierSearchForm", new > > > > > CompoundPropertyModel(m_cSearchDossierModel)); > > > > > form.setOutputMarkupId(true); > > > > > > > > > > form.add(new Label("legend", new > > > > > ResourceModel("fields.legend"))); > > > > > form.add(new Label("nameLabel", new ResourceModel(" > > > > > fields.name"))); > > > > > //Construct TextFields > > > > > TextField cNameTextField = new TextField("name"); > > > > > TextField cLastNameTextField = new > TextField("lastName"); > > > > > //add Fields to the form > > > > > form.add(cNameTextField); > > > > > form.add(new Label("lastNameLabel", new > > > > > ResourceModel("fields.lastName"))); > > > > > form.add(cLastNameTextField); > > > > > > > > > > > > > > > > > > > > ///Add pageable table > > > > > final WebMarkupContainer datacontainer = new > > > > > WebMarkupContainer("data"); > > > > > datacontainer.setOutputMarkupId (true); > > > > > add(datacontainer); > > > > > > > > > > Model modelForList = new Model(){ > > > > > public Object getObject(Component component){ > > > > > return m_cSearchResults; > > > > > } > > > > > }; > > > > > > > > > > final PageableListView listview = new > PageableListView("rows", > > > > > modelForList, 10) { > > > > > > > > > > protected void populateItem(final ListItem item) { > > > > > final DossierSearchResult dossierSearchResult = > > > > > (DossierSearchResult)item.getModelObject(); > > > > > > > > > > item.add(new Link("goToDetail") { > > > > > public void onClick() { > > > > > setResponsePage(NewDossier.class , new > > > > > > > > > PageParameters("dossierId="+dossierSearchResult.getDossierObjectId())); > > > > > } > > > > > }.add(new Label("composedName", > > > > > dossierSearchResult.getComposedName()))); > > > > > > > > > > item.add(new Label("streetAddress", > > > > > dossierSearchResult.getStreetWithNumber ())); > > > > > item.add(new AttributeModifier("class", true, new > > > > > AbstractReadOnlyModel() { > > > > > public Object getObject(Component component) { > > > > > return (item.getIndex () % 2 == 1) ? "even" > : > > > "odd"; > > > > > } > > > > > })); > > > > > } > > > > > }; > > > > > if(m_cSearchResults.size()==0){ > > > > > > > > > > } > > > > > listview.setOutputMarkupId (true); > > > > > datacontainer.add(listview); > > > > > datacontainer.add(new > > > > > AjaxPagingNavigator("navigator", listview)); > > > > > datacontainer.setVersioned(false); > > > > > > > > > > > > > > > // add a button that can be used to submit the form via ajax > > > > > form.add(new > AjaxSubmitButton("searchButton", > > > form) > > > > > { > > > > > protected void onSubmit(AjaxRequestTarget target, Form > form) > > > { > > > > > // repaint the feedback panel so that it is hidden > > > > > > > > > > searchDossiers(m_cSearchDossierModel.getName(), > > > > > m_cSearchDossierModel.getLastName()); > > > > > if(m_cSearchResults.size()==0){ > > > > > datacontainer.setVisible(false); > > > > > }else{ > > > > > datacontainer.setVisible(true); > > > > > } > > > > > target.addComponent(feedback); > > > > > > > > > > target.addComponent(datacontainer); > > > > > } > > > > > > > > > > protected void onError(AjaxRequestTarget target, Form > form) > > > { > > > > > // repaint the feedback panel so errors are shown > > > > > target.addComponent(feedback); > > > > > } > > > > > }); > > > > > //Add Form > > > > > add(form); > > > > > } > > > > > private void searchDossiers(String name, String lastName){ > > > > > > > > > > String message = null; > > > > > try{ > > > > > if(m_cSearchResults==null){ > > > > > m_cSearchResults = new > > > > > ArrayList<DossierSearchResult>(); > > > > > } > > > > > m_cSearchResults.clear(); > > > > > DossierSearch cDossierSearch; > > > > > DossierSearchResultList cDossierSearchResultList; > > > > > > > > > > cDossierSearch = new DossierSearch(); > > > > > > > > > > if(name==null){ > > > > > name = ""; > > > > > } > > > > > if(lastName==null){ > > > > > lastName = ""; > > > > > } > > > > > > > > > > cDossierSearch.setFirstName(name); > > > > > cDossierSearch.setName(lastName); > > > > > > > > > > cDossierSearchResultList = cDossierSearch.search(); > > > > > > > > > > message = > > > > > > > > > cDossierSearchResultList.size()>0?cDossierSearchResultList.size()+" > > > > > Dossiers found at search.":"No Dossiers found at search."; > > > > > info(message); > > > > > for(int iIterator=0;iIterator< > > > > > cDossierSearchResultList.size();iIterator++){ > > > > > > > > > > > > > > m_cSearchResults.add((DossierSearchResult)cDossierSearchResultList.getItem(iIterator)); > > > > > } > > > > > /* > > > > > for(int > > > iIterator=0;iIterator<100;iIterator++){ > > > > > DossierSearchResultEntity cDossierResultEntity = new > > > > > > DossierSearchResultEntity("DossierObjectId-"+iIterator, > > > > > "ComposedName-"+iIterator, "StreetWithNumber-"+iIterator, > > > > > "ZipWithLocation-"+iIterator, iIterator); > > > > > > > > m_cSearchResults.add(cDossierResultEntity); > > > > > }*/ > > > > > } catch(Exception xException){ > > > > > message = "Error Occured at > > > > > > > > > DossierSearchPanel.searchDossiers().\n"+xException.toString(); > > > > > error(message); > > > > > } > > > > > } > > > > > public boolean isVisible() { > > > > > return getWicketSession().isUserLoggedIn(); > > > > > } > > > > > > > > > > /** simple java bean. */ > > > > > private static class SearchDossierModel implements Serializable > { > > > > > private String name, lastName; > > > > > > > > > > /** > > > > > * Gets lastName. > > > > > * > > > > > * > > > > > * @return lastName > > > > > */ > > > > > public String getLastName() { > > > > > return lastName; > > > > > } > > > > > > > > > > /** > > > > > * Sets lastName. > > > > > * > > > > > * > > > > > * @param lastName > > > > > * lastName > > > > > */ > > > > > public void setLastName(String lastName) { > > > > > this.lastName = lastName; > > > > > } > > > > > > > > > > /** > > > > > * Gets name. > > > > > * > > > > > * @return name > > > > > */ > > > > > public String getName() { > > > > > return name; > > > > > } > > > > > > > > > > /** > > > > > * Sets name. > > > > > * > > > > > * @param name > > > > > * name > > > > > */ > > > > > public void setName(String name) { > > > > > this.name = name; > > > > > } > > > > > } > > > > > } > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > 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 > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > 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 > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > 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 > > > > > ------------------------------------------------------------------------- > 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 > > ------------------------------------------------------------------------- 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