Hello, I am rendering a list view having multiple rows using wicket. In form submit(), I could retrive the data in below mentioned code but i am not sure whether it is right way of getting the changed data from the list view . Below is my code snippet attached. Please review the code and let me know the best practice.
// LiConfig is application pojo private Form form; private ListView li_config_settings_row; private List<LiConfig> li_config_settings;// applicaton pojo list li_config_settings_row = new ListView("settingRow", li_config_settings) { protected void populateItem(ListItem item) { final LiConfig p = (LiConfig) item.getModelObject(); item.setModel(new CompoundPropertyModel(p)); //Some code to add components like Hidden fields, Text fields, Labels etc. } }; form.add(li_config_settings_row); form = new Form("sectionPanelForm"){ protected void onSubmit() { ArrayList<LiConfig> liConfigs = new ArrayList<LiConfig>(); Iterator<ListItem> iterator = li_config_settings_row.iterator(); while (iterator.hasNext()) { ListItem listItem = iterator.next(); LiConfig l = new LiConfig(); Iterator<Component> childIterator = listItem..iterator(); boolean changed = false; while (childIterator.hasNext()) { Component c = childIterator.next(); if (c.getId().equalsIgnoreCase("isChanged")) { if ((((HiddenField) c).getConvertedInput() .toString()).equalsIgnoreCase("1")) { changed = true; } } if (c.getId().equalsIgnoreCase("id")) { l.setId(new Integer(((HiddenField) c) .getConvertedInput().toString())); } if (c.getId().equalsIgnoreCase("fieldValue")) { l .setFieldValue(((TextField) c) .getConvertedInput() != null ? ((TextField) c) .getConvertedInput().toString() : ""); } } if (changed) { liConfigs.add(l); } } if (liConfigs.size() != 0) { ArrayList<LiConfig> updatedList = new ArrayList(); String changedValue; for (LiConfig li : liConfigs) { changedValue = li.getFieldValue(); li = ConfigWizardhelper.getLiConfig(li.getId()); li.setFieldValue(changedValue); updatedList.add(li); } ConfigWizardhelper.insertORUpdateLiConfigs(updatedList); } HashMap<String, String> param = new HashMap<String, String>(); param.put("id", id); ConfigWizardPage.index = getIndex(); setResponsePage(ConfigWizardPage.class); } }; -- View this message in context: http://www.nabble.com/How-to-get-the-data-altered-by-the-user-in-html-page--in-a-list-view-tp18313650p18313650.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]