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



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

在 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 的列列表。

这是解决方案:

<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,因为它会导致失望和破坏......但这是旧代码,我还不能花时间将其转换为数据表。:)

相关内容

  • 没有找到相关文章