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消えます。オプションの目的である null 値を選択する必要があります。私は何を間違っていますか?ありがとう。

<option>追加: CF10 ドキュメントによると、 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

Return は関数ではありません...

return("#edcs#");    

関数を次のように変更してみてください...

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

クエリはその値を返す必要があります。UNION ステートメントとして追加してみてください。

于 2012-10-30T14:51:50.423 に答える