Best way to implement DataTable updatable via Ajax
list back List contacts = contactManager.getUsers(); if (first 0) { contacts = contacts.subList(first, first + count); } return contacts.iterator(); } public IModel model(Object object) { return new ContactModel((ContactInfoPOJO)object); } public int size() { return contactManager.getContacts().size(); } } Questions: 1. Is calling dataprovider again the correct approach for updating the datatable? (See TODO 1 above) Can someone please suggest an alternate approach? 2. How do I pass the Error Object to Page's Panel from DataProvider in case of Unsuccessful save?(see TODo: 2 above) 3. Will onError be called if I somehow plugin the error message to feedback Panel (See TODO: 3) Thanks for reading the post. -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18698367.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Best way to implement DataTable updatable via Ajax
// Get the saved list back List contacts = contactManager.getUsers(); if (first 0) { contacts = contacts.subList(first, first + count); } return contacts.iterator(); } public IModel model(Object object) { return new ContactModel((ContactInfoPOJO)object); } public int size() { return contactManager.getContacts().size(); } } Questions: 1. Is calling dataprovider again the correct approach for updating the datatable? (See TODO 1 above) Can someone please suggest an alternate approach? 2. How do I pass the Error Object to Page's Panel from DataProvider in case of Unsuccessful save?(see TODo: 2 above) 3. Will onError be called if I somehow plugin the error message to feedback Panel (See TODO: 3) Thanks for reading the post. -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18698367.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Ryan Gravener http://twitter.com/ryangravener
Re: Best way to implement DataTable updatable via Ajax
(contactPojo); //TODO 2::: HOW? WHERE??? //If Save FAILED then GET ERROR MESSAGE // Get the saved list back List contacts = contactManager.getUsers(); if (first 0) { contacts = contacts.subList(first, first + count); } return contacts.iterator(); } public IModel model(Object object) { return new ContactModel((ContactInfoPOJO)object); } public int size() { return contactManager.getContacts().size(); } } Questions: 1. Is calling dataprovider again the correct approach for updating the datatable? (See TODO 1 above) Can someone please suggest an alternate approach? 2. How do I pass the Error Object to Page's Panel from DataProvider in case of Unsuccessful save?(see TODo: 2 above) 3. Will onError be called if I somehow plugin the error message to feedback Panel (See TODO: 3) Thanks for reading the post. -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18698367.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Ryan Gravener http://twitter.com/ryangravener -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18699753.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Best way to implement DataTable updatable via Ajax
AddContactDataProvider(ContactInfoPOJO contactPojo) { this.contactPojo = contactPojo; contactManager = new JDBCContactManager(); } public Iterator iterator(int first, int count) { // Save the Contact... contactManager.saveContact(contactPojo); //TODO 2::: HOW? WHERE??? //If Save FAILED then GET ERROR MESSAGE // Get the saved list back List contacts = contactManager.getUsers(); if (first 0) { contacts = contacts.subList(first, first + count); } return contacts.iterator(); } public IModel model(Object object) { return new ContactModel((ContactInfoPOJO)object); } public int size() { return contactManager.getContacts().size(); } } Questions: 1. Is calling dataprovider again the correct approach for updating the datatable? (See TODO 1 above) Can someone please suggest an alternate approach? 2. How do I pass the Error Object to Page's Panel from DataProvider in case of Unsuccessful save?(see TODo: 2 above) 3. Will onError be called if I somehow plugin the error message to feedback Panel (See TODO: 3) Thanks for reading the post. -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18698367.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Ryan Gravener http://twitter.com/ryangravener -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18699753.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Ryan Gravener http://twitter.com/ryangravener
Re: Best way to implement DataTable updatable via Ajax
); //TODO 2::: HOW? WHERE??? //If Save FAILED then GET ERROR MESSAGE // Get the saved list back List contacts = contactManager.getUsers(); if (first 0) { contacts = contacts.subList(first, first + count); } return contacts.iterator(); } public IModel model(Object object) { return new ContactModel((ContactInfoPOJO)object); } public int size() { return contactManager.getContacts().size(); } } Questions: 1. Is calling dataprovider again the correct approach for updating the datatable? (See TODO 1 above) Can someone please suggest an alternate approach? 2. How do I pass the Error Object to Page's Panel from DataProvider in case of Unsuccessful save?(see TODo: 2 above) 3. Will onError be called if I somehow plugin the error message to feedback Panel (See TODO: 3) Thanks for reading the post. -- View this message in context: http://www.nabble.com/Best-way-to-implement-DataTable-updatable-via-Ajax-tp18698367p18702367.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Best way to implement DataTable updatable via Ajax
the inMethod DataGrid is excellent. plb nanotech wrote: please help,Anyone? --- Hi All, I have a Save Form where user should be able to add/save new records and should be able to view feedback if there are any errors. In short, When user loads up the page he sees a form and under it a DataTable which holds the deafault search results. If he tries to add a record and Add is Successful then DataTable gets updated via Ajax. In case of Failure errors are reported on feedback panel. Here is how I have implemented it: === SaveContactPage.html === div wicket:id=saveUserFeedback[Feedback-error messages etc.]/div form wicket:id=saveUserForm table tr tdFirst Name:/td tdinput type=text wicket:id=firstName//td /tr tr tdLast Name:/td tdinput type=text wicket:id=lastName//td /tr tr tdinput type=submit wicket:id=saveContactButton //td /tr /table /form !-- Updatable container for search/add results -- div wicket:id=resultsContainer table wicket:id=addResultsTable[Results for add/search Contacts]/table /div = SaveContactPage.java == public class SaveContactPage extends WebPage { // Hold reference to provider.. AddContactDataProvider provider; // Hold refernce to FeedbackPanel... FeedbackPanel saveUserFeedback; //Hold refernece to updatable dataTable's container.. WebMarkupContainer resultsContainer; public SaveContactPage() { add(saveUserFeedback = new FeedbackPanel(saveUserFeedback)); saveUserFeedback.setOutputMarkupId(true); SaveUserForm userForm = new SaveUserForm(saveUserForm); add(userForm); // Get a new provider. provider = new AddContactDataProvider((ContactInfoPOJO) userForm.getModelObject()); // Get all the columns. ListIColumn columns = createColumns(); resultsContainer = new WebMarkupContainer(resultsContainer); resultsContainer.add(new DataTable(addResultsTable,columns, provider, 10)); } private ListIColumn createColumns() { ListIColumn columns = new ArrayList(); columns.add(new PropertyColumn(this.getModel(),firstName)); columns.add(new PropertyColumn(this.getModel(),lastName)); } // Begin Save USER Form. private class SaveUserForm extends StatelessForm { public SaveUserForm(String id) { super(id); // Set Form's model setModel(new CompoundPropertyModel(new ContactInfoPOJO())); add(new TextField(firstName)); add(new TextField(lastName)); add(new AjaxFallbackButton(saveContactButton, this) { @Override protected void onSubmit(AjaxRequestTarget target,Form form) { // TODO 1: Is this Correct approach // (i.e. calling the provider // again to refresh the container) // On Submitcall the provider again? provider = new AddContactDataProvider(form.getModelObject()); //Refresh the dataTable target.addComponent(resultsContainer); // In case of Failure...Display the error messages. } protected void onError(AjaxRequestTarget target,Form form) { // TODO 3: Show Errors...if any // But Error happned in DataProvider... // How do I get hold of Error Object Here... target.addComponent(saveUserFeedback); } }); } } } == AddContactDataProvider.java == public class AddContactDataProvider extends SortableDataProvider { private ContactInfoPOJO contactPojo; private ContactManager contactManager; public AddContactDataProvider(ContactInfoPOJO contactPojo) { this.contactPojo = contactPojo; contactManager = new JDBCContactManager(); } public Iterator iterator(int first, int count) { //