2017-09-14 4 views
0

Cela a fonctionné correctement pour de nombreuses versions antérieures. Après la mise à jour vers ColdFusion 2016, cfgrid génère une erreur lors de la tentative de mise à jour d'une cellule comme l'état actif de 2 à 3 pour un élément. L'utilisateur met à jour la cellule et les accès, puis rafraîchit la grille et voit son changement n'est pas stocké. L'erreur cfdebug de l'enregistreur AJAX est cfgridchanged is undefined. Des suggestions sur la façon de faire ce travail dans ColdFusion 2016?Problème avec la fonction de mise à jour ColdFusion 2016 CFGrid

<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> 

la section de 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> 
+0

Quelle mise à jour avez-vous demandé quand cela a éclaté? Je sais qu'Adobe vient de publier une autre mise à jour il y a quelques jours. Cette mise à jour inclut des modifications pour CFGrid ainsi que des fonctionnalités AJAX. [Bogues corrigés dans ColdFusion (version 2016) Mise à jour 5] (https://helpx.adobe.com/coldfusion/kb/bugs-fixed-coldfusion-2016-update-5.html#bugsfixed) –

+0

Miguel - la mise à jour 5 a eu lieu récemment appliqué et résolu le problème – Brian

+0

Great! Content de l'avoir réparé pour vous. J'ajouterai cela comme une réponse pour que les autres le voient plus clairement. –

Répondre

0

Promu des commentaires

Quelle mise à jour avez-vous demandé quand cela a éclaté? Je sais qu'Adobe vient de publier une autre mise à jour il y a quelques jours - Mise à jour 5. Cette mise à jour inclut des modifications pour les fonctionnalités CFGrid et AJAX. Bugs fixed in ColdFusion (2016 release) Update 5

bogues corrigés dans ColdFusion (2016 version) Mettre à jour 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