3

我正在创建一个表单,无论出于何种原因,当使用bindOnLoad远程 CFC 时,我的默认值似乎没有出现。

这是cfselect:

<cfselect name="edcs"
          id="edcs"
          multiple="false"
          bind="cfc:Components.requestSearch.getEDCs()" 
          bindonload="true"
          value="edc_nm"
          display="edc_nm">
    <option name="">Select an EDC</option>
</cfselect>

这是功能:

<cffunction name="getEDCs" access="remote" returntype="query">
    <cfscript>
        var queryService = new Query();
        queryService.setDatasource("#APPLICATION.db2system#");
        queryService.setName("getEDCs");
        queryService.setUserName("#APPLICATION.db2logon#");
        queryService.setPassword("#APPLICATION.db2pass#");
        queryService.setSQL(
                "select distinct rtrim(edc_nm) as edc_nm 
                   from #APPLICATION.db2owner#.pms_account");

        var result = queryService.execute();
        var edcs = result.getResult();          

        return("#edcs#");       
</cfscript>
</cffunction>

因此,当页面加载时,我看到<option ...>显示的值瞬间显示,然后列表被填充,然后Select an ECD消失。我需要选择一个空值,这就是该选项的用途。我究竟做错了什么?谢谢。

补充:根据 CF10 文档,我应该可以使用<option>html 标签。 http://help.adobe.com/en_US/ColdFusion/10.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7afe.html

4

3 回答 3

2

我在使用 CFSELECT 和绑定 CFC 时遇到过这个问题。我也无法添加<option></option>带有绑定 CFSELECT 的标签。最好的方法是创建查询并强制结果在顶部具有所需的输入。例如:

SELECT distinct 
    rtrim(edc_nm) as edc_nm_display,
    rtrim(edc_nm) as edc_nm_value
FROM #APPLICATION.db2owner#.pms_account
UNION
SELECT
'Select an EDC' as edc_nm_display,
'0' as edc_nm_value
FROM dual
ORDER BY 2

这将返回您的查询,顶部带有“选择 EDC”。另外,作为支票,我认为<option name="">Select an EDC</option>应该是<option value="">Select an EDC</option>. 我希望这会有所帮助。

于 2012-12-01T10:03:05.520 回答
1

查询将需要返回该值。尝试将其添加为 UNION 语句。

于 2012-10-30T14:51:50.423 回答
1

返回不是函数...

return("#edcs#");    

尝试将您的功能更改为...

var result = queryServices().execute().getResult();
return result;
于 2012-11-01T04:34:15.263 回答