Version of smartgwt: 2.4
Browser : Firefox 3.6
Hi, I have litle problem with integration of DynamicForm to server side.
I try to implement my own implementation of RestDataSource, but when I submit my form, empty message(without data) is sent to server. Can I ask how to bind DynamicForm to datasource(generate full DSMessage)?
My implementation of RestDataSource :
My UI:
Thanks for help.
Browser : Firefox 3.6
Hi, I have litle problem with integration of DynamicForm to server side.
I try to implement my own implementation of RestDataSource, but when I submit my form, empty message(without data) is sent to server. Can I ask how to bind DynamicForm to datasource(generate full DSMessage)?
My implementation of RestDataSource :
Code:
public class ContactDS extends RestDataSource { public ContactDS() { setID("MessageDS"); DataSourceTextField idField = new DataSourceTextField("contactId"); idField.setPrimaryKey(true); idField.setCanEdit(false); DataSourceTextField firstNameField = new DataSourceTextField("name"); DataSourceTextField lastNameField = new DataSourceTextField("surname"); DataSourceTextField emailField = new DataSourceTextField("emailAdress"); DataSourceTextField telephoneNumberField = new DataSourceTextField("telephoneNumber"); setFields(idField,firstNameField, lastNameField, emailField, telephoneNumberField); OperationBinding fetch = new OperationBinding(); fetch.setOperationType(DSOperationType.FETCH); fetch.setDataProtocol(DSProtocol.POSTMESSAGE); OperationBinding add = new OperationBinding(); add.setOperationType(DSOperationType.ADD); add.setDataProtocol(DSProtocol.POSTMESSAGE); add.setDataFormat(DSDataFormat.XML); OperationBinding update = new OperationBinding(); update.setOperationType(DSOperationType.UPDATE); update.setDataProtocol(DSProtocol.POSTMESSAGE); OperationBinding remove = new OperationBinding(); remove.setOperationType(DSOperationType.REMOVE); remove.setDataProtocol(DSProtocol.POSTMESSAGE); setOperationBindings(add, fetch, update, remove); this.setDataFormat(DSDataFormat.XML); setFetchDataURL("http://localhost:8888/rest/contacts/read"); setAddDataURL("http://localhost:8888/rest/contacts/add"); setUpdateDataURL("http://localhost:8888/rest/contacts/update"); setRemoveDataURL("http://localhost:8888/rest/contacts/remove"); } }
Code:
public class HellerDynamicFormPane extends VLayout{ TextItem name; TextItem surname; TextItem telephoneNumber; TextItem emailAdress; DynamicForm form; ContactDS contactDS; public HellerDynamicFormPane() { super(); this.initLayout(); this.setWidth("50%"); this.setHeight("50%"); } public void initLayout() { //this.setAutoHeight(); HeaderItem headerItem = new HeaderItem(); headerItem.setDefaultValue("New Contact form"); form = new DynamicForm(); form.setWidth(400); this.name = new TextItem(); name.setName("name"); name.setTitle("Username"); this.surname = new TextItem(); surname.setName("surname"); surname.setTitle("Surname"); this.telephoneNumber = new TextItem(); telephoneNumber.setName("telephoneNumber"); telephoneNumber.setTitle("Telephone Number"); this.emailAdress = new TextItem(); emailAdress.setName("emailAdress"); emailAdress.setTitle("Email Adress"); final ButtonItem buttonItem = new ButtonItem(); buttonItem.setTitle("Ok"); buttonItem.addClickHandler(new ClickHandler() { @Override public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) { form.saveData(); } }); form.setDataSource(new ContactDS()); form.setFields(headerItem, name, surname, telephoneNumber, emailAdress, buttonItem); this.addMember(form); //this.draw(); } }
Comment