CF11 vs.CF2018:CFGRID绑定错误,找不到元素

时间:2019-08-28 13:31:22

标签: javascript coldfusion coldfusion-11 cfgrid coldfusion-2018

我已经摆弄了一段时间,偶然发现了一个答案,所以我想将其发布,希望它可以节省其他人的时间。

在CF11上,我的绑定参数如下:

<cfset args.bind = 'cfc:data.RecordSelect({cfgridpage},{cfgridpagesize},{cfgridsortcolumn},{cfgridsortdirection},"#DataSelect.tableName#","#DataSelect.dsn#",{gridForm:searchColumn},gridForm:searchBox},"#DataSelect.PKName#","#variables.gridColumnsForGrid#")'>

使用CF11,它运行得很好,并且在CF2018上也可以正常使用。网格排序,更新,添加新记录和删除记​​录。但是我还有一个过滤器下拉菜单,当我尝试过滤时,出现此错误:

  

找不到元素:“ gridColumn | gridHeading | gridDataType | gridMask | tableName | PKName | searchable | dsn” [通过在您的URL参数中添加'cfdebug'以启用调试,以查看更多信息]

该元素是我要传递给CFC的列的列表。

1 个答案:

答案 0 :(得分:1)

这是解决方案:

<cfset args.bind = 'cfc:data.RecordSelect({cfgridpage},{cfgridpagesize},{cfgridsortcolumn},{cfgridsortdirection},{gridForm:tableName},{gridForm:dsn},{gridForm:searchColumn},{gridForm:searchBox},{gridForm:PKName},{gridForm:gridColumnsForGrid})'>

<cfinput type="hidden" name="tableName" id="tableName" value="#DataSelect.tableName#" />
<cfinput type="hidden" name="dsn" id="dsn" value="#DataSelect.dsn#" />
<cfinput type="hidden" name="PKName" id="PKName" value="#DataSelect.PKName#" />
<cfinput type="hidden" name="gridColumnsForGrid" id="gridColumnsForGrid" value="#variables.gridColumnsForGrid#" />

因此,根据我的经验,这意味着您不能再通过绑定传递非括号元素。也许这就是我总是应该做的,因为这两种方法都可以在CF11中使用。

当然,我知道我们不应该再使用CFGRID,因为它会导致失望和毁灭...但是这是旧代码,我还不能花时间将其转换为DataTables 。 :)