2013-01-18 38 views
0

我使用的ColdFusion CF_TwoSelectsRelated自定义标签by Nate Weiss填充两个动态的选择框。该标签位于CFFunction中。第二个SELECT框基于第一个SELECT框中的选择。我的第一个SELECT框很好,但它不会在我的第二个SELECT框中填充结果。这里是我的代码:使用自定义标签CF_TwoSelectsRelated不填充第二个选择框

<CFFunction ...> 
    <CFQuery Name="Variables.AcctDelegationQuery" DataSource="#Request.ReportDataSource#" maxrows="301" blockfactor="100"> 
     SELECT distinct oa.op_location_code loc, 
     oa.op_fund_num op_fund_num, 
     oa.op_location_code||'-'||oa.op_fund_num loc_fund, 
     oa.chart_num chart_num, 
     oa.acct_num acct_num, 
     oa.chart_num||'-'||oa.acct_num chart_acct 
     FROM ... 
     WHERE ... 
     group by oa.op_location_code, oa.op_fund_num , oa.op_location_code||'-'||oa.op_fund_num, oa.chart_num, oa.acct_num , oa.chart_num||'-'||oa.acct_num 
     order by loc_fund, chart_acct 
    </CFQuery> 

    <CF_TwoSelectsRelated 
     QUERY="Variables.AcctDelegationQuery" 
     NAME1="LocFund" 
     NAME2="ChartAcct" 
     DISPLAY1="loc_fund" 
     DISPLAY2="chart_acct" 
     VALUE1="loc_fund" 
     VALUE2="chart_acct" 
     FORCEWIDTH1="30" 
     FORCEWIDTH2="30" 
     SIZE1="1" 
     SIZE2="1" 
     HTMLBETWEEN="<td>" 
     EMPTYTEXT1="(Select a Fund)" 
     EMPTYTEXT2="(Select an Account)" 
     ONCHANGE="" 
     FORMNAME=""> 
</CFFunction> 

感谢, Kefang丰

+0

这里最好的做法是*不*使用这些自定义标签。所以,如果你仍然有修改你的代码的范围,使用JS(例如:JQuery等)和AJAX调用来做到这一点。 TwoSelectsRelated.cfm可能在十年前有一个地方,但它不再有。 –

+0

谢谢。我正在使用AJAX来实现动态选择。 – tigerpuzzle

回答

0

我建议您不要使用该标记在所有。这两个主要原因是

  1. 它是2002年写的,有很多更好的方法来实现相关选择比那时更好。

  2. 正是基于这限制了它的用处单一查询。

我认为现在最好的方法是将你的2个cfselect绑定到cfc中的方法。关于cfselect和cfinput的文档将会有例子。

+1

我会推荐使用基于JavaScript的方法,而不是使用'cfselect' –

2

没有帮助,从我的头顶开始,我不记得它是什么......但是...... 原始自定义标记中存在一个错误。

我向Nate提交了更改,但这是很久以前的事了,我实际上并不记得得到答复。

尽管如此 - 我不再使用它。我通常会选择jQuery解决方案。 同样,你可能会发现这个S.O后有帮助:Using javascript and jquery, to populate related select boxes with array structure

相关问题