这对许多版本都很好。更新到ColdFusion 2016后,cfgrid
试图将类似的单元格更新为Active状态的单元为项目时会产生错误。
用户更新单元格并输入命中,然后刷新网格并发现其更改未存储。来自AJAX记录器的cfdebug
错误是cfgridchanged is undefined
。关于如何在ColdFusion 2016中进行这项工作的任何建议?
<cfgrid name="modify_pids"
height=525
autowidth="yes"
width=1040
vspace=10
selectmode="edit"
insert="No"
delete="No"
format="html"
selectonload = "no"
striperows = "yes"
selectcolor="CDE6F3"
preservePageOnSort="Yes"
pagesize=100
sort=true
onChange="cfc:functions_pids.updatePID({cfgridaction},{cfgridrow}, {cfgridchanged}, '#getcurruser.uid#')"
bind="cfc:functions_pids.getPIDS({cfgridpage},{cfgridpagesize}, {cfgridsortcolumn},{cfgridsortdirection}, '#mygridsortcolumn#', searchPID(), searchDESC(), searchSTAT(), searchMOQ(), searchCOST(), searchUNIT(), searchMODBY(), searchMODDATE() )">
<cfgridcolumn name="PID_ID"
header="PID"
width=40
headeralign="center"
headerbold="Yes"
select="No">
<cfgridcolumn name="Description"
header="Description"
width=150
headeralign="center"
headerbold="Yes"
select="Yes">
<cfgridcolumn name="Active_Status"
header="Status<br>Active=1,3<br>Inactive=2"
width=35
headeralign="center"
headerbold="Yes"
select="Yes"
display="yes">
<cfgridcolumn name="MOQ"
header="MOQ"
width=20
headeralign="center"
headerbold="Yes"
select="Yes">
<cfgridcolumn name="COST"
header="Cost"
width=40
headeralign="center"
headerbold="Yes"
select="Yes">
<cfgridcolumn name="UNIT"
header="Unit"
width=40
headeralign="center"
headerbold="Yes"
select="Yes">
<cfgridcolumn name="Modify"
header="Modified By"
width=50
headeralign="center"
headerbold="No"
select="No">
<cfgridcolumn name="Modify_Date"
header="Modified Date"
width=60
headeralign="center"
headerbold="Yes"
select="No"
type="date">
<cfgridcolumn name="PID_USED"
header="Inventory<br>Instances"
width=50
headeralign="center"
headerbold="No"
select="No">
<cfgridcolumn name="Inventory_Sum"
header="Inventory<br>Total"
width=50
headeralign="center"
headerbold="No"
select="No">
</cfgrid>
functions_pids.cfc
的部分<cffunction name="updatePID" access="remote" output="false">
<cfargument name="cfgridaction">
<cfargument name="cfgridrow">
<cfargument name="cfgridchanged">
<cfargument name="getcurruser"> <!--- pass in modified by user id --->
<cfargument name="PID_ID" required="no" type="string" default="" >
<cfset strctKey=StructKeyArray(cfgridchanged) />
<cfset strctVal=StructFindKey(cfgridchanged, strctKey[1]) />
<cfset strctVal=strctVal[1] />
<cfif cfgridaction is "D">
<cfelseif cfgridaction is "U">
<cfquery name="update" datasource="#request.dbname#" username="#request.dbuser#" password="#request.dbpw#">
UPDATE PIDS
SET #strctKey[1]# = '#strctVal.value#',
Modify = '#getcurruser#',
Modify_Date = '#dateformat(CreateODBCDateTime( Now()), "mm/dd/yyyy")#'
WHERE PID_ID = '#cfgridrow.PID_ID#'
</cfquery>
<cfelseif cfgridaction is "I">
</cfif>
<cfreturn />
</cffunction>
从注释
提升破裂时您应用了哪个更新?我知道Adobe几天前刚刚发布了另一个更新 - 更新5。该更新包括CFGRID和AJAX功能的一些更改。固定在ColdFusion(2016版本)中的错误更新5
ColdFusion(2016版本)中修复的错误5
Bug ID Description Component CF-4198947 CFGrid scripting options do not work as expected. AJAX : UI Components CF-4198855 cfquery requests result in the following error message: Access denied ("java.io.FilePermission" "C:ColdFusion2016cfusionwwwrootWEB-INFclassesmacromediasqlserverutiluserDefaults.properties" "read") Database CF-4198854 A piechart does not get displayed with only one item (100%). Charting/Graphing CF-4198761 On a Linux OS, cfdocument does not generate chart in a pdf. Document Management : PDF generation CF-4198817 cfquery returns cached results even when the cachedafter date is updated to be after the date of the original cached query date, but is still a past date. Database : CFQuery CF-4198816 Changes to cached query results are persisted back into cache. Database : CFQuery CF-4198764 When loading the template for the first time, the template displays the CFTOKEN, however, with the second refresh the token disappears. Core Runtime : Session Management CF-4198589 Method invocation through ajaxproxy fails even if the required arguments are passed. AJAX : Plumbing CF-4198570 The datefield attribute in cfinput does not display the value of the attribute. CFForm : HTML CF-4198559 The Elvis operator fails when used with argument scope. Core Runtime CF-4198513 The cache does not get updated as expected. Caching CF-4195407 cfinput type="datefield" generates invalid HTML code. CFForm CF-4182090 When Sandbox security is enabled, you are unable to connect to SQL Server. Security