首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ComboBoxItem和多个DataSource的DynamicForm

带有ComboBoxItem和多个DataSource的DynamicForm
EN

Stack Overflow用户
提问于 2013-08-09 18:21:47
回答 1查看 1.1K关注 0票数 0

我是SmartGwt的新手。我正在尝试用ComboBoxItem制作一个DynamicForm,我想从数据库中的某个表中设置组合框的值。保存表单数据的DataSource是另一个。我该如何管理它呢?

下面是我的java代码:

代码语言:javascript
复制
// DataSource
DataSource arcDS = DataSource.get("automaticExportConfig");
// ComboboxItem set
cycleList = new ComboBoxItem("cycle");
cycleList.setOptionDataSource(arcDS);
cycleList.setOptionOperationId("comboBoxCycleList");
cycleList.setDisplayField("cycle");
cycleList.setValueField("cycle");
cycleList.setAutoFetchData(true);
cycleList.setFilterLocally(false);

.ds.xml文件:

代码语言:javascript
复制
<DataSource
  dbName="PostgreSQL"
  ID="automaticExportConfig"
  serverType="sql"
  tableName="automaticExportConfig"
  titleField="id"
>

<fields>
    <field name="id" type="sequence" sequenceName="automaticExportConfig_id_seq" hidden="true" primaryKey="true"/>
    <field name="cycle" type="text" title="Cycle"  />
    </fields>

 <operationBindings>
    <binding operationType="fetch" operationId="comboBoxCycleList" outputs="id">
        <customSQL>SELECT id FROM billingcycle</customSQL>
        <serverObject className="com.demo.server.AutomaticExportConfigDMI" methodName="getComboBoxCycleList"/>
    </binding>

</operationBindings>

<serverObject lookupStyle="new" className="com.demo.server.AutomaticExportConfigDMI"/>

DMI.java文件:

代码语言:javascript
复制
public DSResponse fetch(DSRequest dsRequest) throws Exception {
    log.info("procesing AutomaticExportConfig DMI fetch operation");
    DSResponse dsResponse = dsRequest.execute();
    System.out.println("data"+dsResponse.getData());
    return dsResponse;
}

public DSResponse getComboBoxCycleList(com.isomorphic.rpc.RPCManager manager, javax.servlet.http.HttpServletResponse response, DSRequest dsRequest) throws Exception {
    log.info("procesing AutomaticExportConfig DMI fetch operation");
    DSResponse dsResponse = dsRequest.execute();
    System.out.println("listdata"+dsResponse.getData());
    return dsResponse;
}

数据显示在控制台中,但不显示在ComboBox中。

EN

回答 1

Stack Overflow用户

发布于 2014-03-17 23:23:58

有一个首选是使用<operationBindings>标签在DataSource中加入一个文件。下面是一个示例:

代码语言:javascript
复制
<operationBindings>
            <operationBinding operationType="fetch">
                <tableClause>crm_objects,crm_kind</tableClause>
                <whereClause>crm_objects.crm_obj_kind = crm_kind.crm_kind_idnum AND ($defaultWhereClause)</whereClause>
            </operationBinding>
        </operationBindings>

我希望我已经回答了你的问题,因为它不够清楚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18144532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档