下列代码实现的是 一个下拉列表的功能:
?
package com.tservice.PGA.smApp.client.Meeting; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.smartgwt.client.data.fields.DataSourceEnumField; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.tservice.PGA.smApp.client.service.SmService; import com.tservice.PGA.smApp.client.service.SmServiceAsync; public class publicUserStringArrayList { SmServiceAsync mainService = (SmServiceAsync) GWT.create(SmService.class); ServiceDefTarget endpoint = (ServiceDefTarget) mainService; String moduleBaseURL = GWT.getModuleBaseURL()+"rpc"; DataSourceTextField peopleText=null; SelectItem select=null; public publicUserStringArrayList(String titleId,String name){ endpoint.setServiceEntryPoint(moduleBaseURL); //"people","参与者" peopleText=new DataSourceTextField(titleId,name,10); select=new SelectItem(titleId,name); mainService.getUserLists(new AsyncCallback(){ public void onFailure(Throwable caught) { } public void onSuccess(Object result) { String[] str=(String[])result; select.setValueMap(str); } }); } }?
?
其他前端页面调用:
?
final publicUserStringArrayList userList=new publicUserStringArrayList("people","参与者");
?
DynamicForm form=new DynamicForm(); form.setUseAllDataSourceFields(true);//只有这样才能让DataSource控件与常规控件(SelectItem)同事显示 form.setDataSource(dataSource); form.setFields(userList.select);
?
DataSource dataSource=new DataSource(); dataSource.setClientOnly(true);?
参考:
http://dragon0929.iteye.com/blog/611864#comments
?
?