我可以用自己的自定义变量名替换cfgridkey吗?或者建立我自己的href?

时间:2013-01-14 20:15:30

标签: coldfusion cfgrid

我有一个显示我的ID的简单cfgrid。我希望id成为新页面的链接,传递带有id值的url参数“myID”。

我试过这段代码:

<cfgrid name="myGrid" query="myQuery" format="html">
   <cfgridcolumn name="myID" href="mynewpage.cfm" />
</cfgrid>

但这会将我带到网址“mynewpage.cfm? hrefkey = 111”。我真正想要的是“mynewpage.cfm? myID = 111”。有没有办法指定url参数的名称应该是什么?

我也试过了:

<cfgrid name="myGrid" query="myQuery" format="html">
   <cfgridcolumn name="myID" href="mynewpage.cfm?myID=#myID#" />
</cfgrid>

然后我收到错误“myID is not defined”。有没有办法在cfgridcolumn标记中引用查询字段值?

更新

我尝试了另一件事 - 在sql查询中构建字符串,以便返回一个名为myURL的列,其值为“mynewpage.cfm?myID = 111”,然后使用该列进行href属性:

<cfgrid name="myGrid" query="myQuery" format="html">
   <cfgridcolumn name="myID" href="#myURL#" />
</cfgrid>

根据coldfusion documentation,您应该可以这样做:

  

href - URL 或查询列名称,其中包含用于超链接每个网格的URL   专栏。

(斜体矿)

但我收到错误“myURL is not defined”。如何将href设置为列而不是文字网址值?

2 个答案:

答案 0 :(得分:1)

这类似于使用href的<cftree> / <cftreeitem>问题。似乎没有内置的解决方案。要么处理提供的密钥并使用出站URL重写重命名整个地址(IIS具有本机支持,Apache可以使用UrlRewriteFilter执行此操作),或者您可能只是切换到不同的基于Javascript的网格。

答案 1 :(得分:0)

此页面中有一个解决方案:

http://www.houseoffusion.com/cfdocs1/Developing_Web_Applications_with_ColdFusion/14_Building_Dynamic_Forms/dwa14_09.htm

使用

定义新列
<cfset queryAddColumn(SPEREQ_QRY_UNFULFILLED, "CUST_LINK", ArrayNew(1)) />

<cfloop query="SPEREQ_QRY_UNFULFILLED">
  <cfset querySetCell(SPEREQ_QRY_UNFULFILLED, "CUST_LINK","index.cfm?action=contact_info&cust_id=#SPEREQ_QRY_UNFULFILLED.CUST_CNTCT_LMS_ID#", SPEREQ_QRY_UNFULFILLED.currentRow) />
</cfloop>

在显示

中使用此新列cust_link
<cfgridcolumn name = "CUST_CNTCT_LMS_ID" header="CustID"  
     href="CUST_LINK" target="_blank" width="20">
<CFGRIDCOLUMN NAME="CUST_LINK" DISPLAY="No">