动态下拉列表由于大查询而混乱

时间:2018-01-19 13:49:35

标签: html oracle11g coldfusion html-select coldfusion-2016

我的下拉字段存在问题,该字段由大型查询动态填充。由于当用户访问表单时查询返回一个非常大的值,表单冻结。它就像是在等待下拉列表的填充。与此同时,所有表单格式都搞砸了,下拉列表消失了。当我将查询限制为较少数量的记录时,一切正常。此查询返回超过26K的记录。 有没有解决方法来解决ColdFusion中的这个问题?我不相信ColdFusion无法处理这种情况。我使用ColdFusion2016和后端Oracle 11g。

以下是查询和下拉列表:

    <cfquery name="xCodes" datasource="#application.DSN#">
     select xcode, desc, xcode || ' ---- ' || desc as FullDesc
     from x_header
     <cfif IsDefined("url.codes")>
        <cfif url.codes EQ "y">
         order by xcode
        <cfelse>
         order by desc
        </cfif>
     </cfif>
    </cfquery>

        <select name="xcode" id="xcode" class="RegSelect" required="TRUE">
          <option value="">--- Select a code ---</option>
             <cfoutput query="xCodes">
             <option value="#xcode#">#FullDesc#</option>
             </cfoutput>
        </select>

1 个答案:

答案 0 :(得分:6)

我同意Alex Poole的选择中的26K项目相当大,在我看来,您的浏览器的渲染引擎正在努力构建它,这就是为什么你的格式化是不可思议的直到它#&# 39; s终于建成了。

以下是一些建议。

  1. 是否可以将值分解为逻辑组并使用多个选择?因此,您的第一个选择将是逻辑组值。一旦用户选择了他们的选择,下一个选择将只包含该逻辑组中的值。如果不存在这样的逻辑分组,那么您可以自己编写。例如,您可以使用字母表中的26个字母作为逻辑组,然后您的子选择将平均包含1000个选项。

  2. 另一个建议是使用jQuery自动完成并通过ajax调用填充您的值。我已经使用ColdFusion和Oracle多次完成了这项工作,效果很好。