Coldfusion 为什么cfGrid似乎在传递不正确的数据?
我被要求使用cfGrid来允许在最终提交到数据库之前编辑上传的电子表格。我在CF5/6时代就熟悉cfGrid,但最近没有使用过它。所以我可能只是误解了数据 我的网格调用如下:Coldfusion 为什么cfGrid似乎在传递不正确的数据?,coldfusion,cfgrid,Coldfusion,Cfgrid,我被要求使用cfGrid来允许在最终提交到数据库之前编辑上传的电子表格。我在CF5/6时代就熟悉cfGrid,但最近没有使用过它。所以我可能只是误解了数据 我的网格调用如下: <cfgrid name="uGrid" format="html" query="xlsData" title="Edit Uploaded Data" striperows="yes" selectmode="edit"
<cfgrid name="uGrid"
format="html"
query="xlsData"
title="Edit Uploaded Data"
striperows="yes"
selectmode="edit"
delete="yes">
<cfgridcolumn name="queryRowNum" display="true" />
<cfloop list="#replace(form.columnList, " ", "", "All")#" index="i">
<cfgridcolumn name="#i#" header="#i#" width="200" select="Yes" />
</cfloop>
</cfgrid>
我将第一行的数据更改为2014年1月10日,将第三行的日期更改为2014年3月17日,然后提交表格。在下一页中,我转储表单范围,以便查看cfGrid传递的内容。我计划查看传入的数组以进行更新。这是我在表单范围中看到的:
UGRID.QUERYROWNUM
array
1 3
2 4
UGRID.ROWSTATUS.ACTION
array
1 U
2 U
UGRID.SPEAKINGDATE
array
1 1/10/14
2 3/17/14
相反,我希望:
UGRID.QUERYROWNUM
array
1 1
2 3
UGRID.ROWSTATUS.ACTION
array
1 U
2 U
UGRID.SPEAKINGDATE
array
1 1/10/14
2 3/17/14
我的期望(基于文档)是,任何更改的行都将传递整个行。然后我可以使用“queryRowNum”数组来知道哪个查询行需要用新数据更新。因为我更新了第一行和第三行,并且它们的queryRowNum分别为1和3,所以我希望在uGrid.queryRowNum数组中会出现这种情况
这个假设不正确吗?如果是,我如何知道要更新的查询行
我相信这台服务器正在运行CF9
编辑
奇怪的是,我刚刚注意到,当我单击submit按钮时,我可以根据我选择的单元格更改未更改列中传递的内容。如果我选择我在第一行更改的列并提交表单,那么一切都正常。我也注意到了这种奇怪的行为。我还没有找到“html”格式的解决方案。我使用的变通方法是“flash”格式。从HTML到flash的一个更改发送所有正确的数据
<cfif isdefined('form.submit')>
<cfdump ="#form1#">
<cfgridupdate grid = "uGrid" dataSource = "#DSN" tableName = "#tablename#" keyOnly="true" >
</cfif>
<cfquery name="xlsData">
</cfquery>
<cfform name="form1" action="#cgi.script_name#" format="flash" method="post">
<cfgrid name="uGrid"
format="flash"
query="xlsData"
title="Edit Uploaded Data"
striperows="yes"
selectmode="edit"
delete="yes">
<cfgridcolumn name="queryRowNum" display="true" />
<cfloop list="#replace(form.columnList, " ", "", "All")#" index="i">
<cfgridcolumn name="#i#" header="#i#" width="200" select="Yes" />
</cfloop>
</cfgrid>
<cfinput name="submit" type="Submit" value="Save All Changes">
</cfform>
<cfif isdefined('form.submit')>
<cfdump ="#form1#">
<cfgridupdate grid = "uGrid" dataSource = "#DSN" tableName = "#tablename#" keyOnly="true" >
</cfif>
<cfquery name="xlsData">
</cfquery>
<cfform name="form1" action="#cgi.script_name#" format="flash" method="post">
<cfgrid name="uGrid"
format="flash"
query="xlsData"
title="Edit Uploaded Data"
striperows="yes"
selectmode="edit"
delete="yes">
<cfgridcolumn name="queryRowNum" display="true" />
<cfloop list="#replace(form.columnList, " ", "", "All")#" index="i">
<cfgridcolumn name="#i#" header="#i#" width="200" select="Yes" />
</cfloop>
</cfgrid>
<cfinput name="submit" type="Submit" value="Save All Changes">
</cfform>