2012-10-30 19 views
3

我正在創建一個表單,並且由於某種原因,當使用帶有遠程CFC的bindOnLoad時,我的默認值似乎沒有出現。將CFC綁定到cfselect框

這裏是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

回答

2

我碰到這個問題與CFSELECTs和有約束力的氟氯化碳運行。我也一直無法添加​​3210標籤和綁定的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>。我希望有所幫助。

1

該查詢將需要返回該值。嘗試將其添加爲UNION語句。

+0

如下所示:'從#APPLICATION.db2owner#.pms_account union select cast(作爲char(10)作爲edc_nm)從#APPLICATION.db2owner#.pms_account'中選擇不同的rtrim(edc_nm)作爲edc_nm。 –

+0

是的。我不知道你的數據,所以你可能需要添加一個列來排序,但這是正確的軌道。 –

1

回報是不是一個函數...

return("#edcs#");  

試着改變你的函數...

var result = queryServices().execute().getResult(); 
return result;