0

这在之前的许多版本中都运行良好。更新到 ColdFusion 2016 后,cfgrid尝试将单元格(如项目的活动状态)从 2 更新到 3 时会产生错误。

用户更新单元格并点击回车,然后刷新网格并看到他们的更改未存储。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>
4

1 回答 1

0

从评论中推广

发生这种情况时您应用了哪个更新?我知道 Adob​​e 几天前刚刚发布了另一个更新 - 更新 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:\ColdFusion2016\cfusion\wwwroot\WEB-INF\classes\macromedia\sqlserverutil\userDefaults.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
于 2017-09-22T11:44:40.290 回答