From f69a829e13d3f1d71caac18ff00edec9005dac41 Mon Sep 17 00:00:00 2001 From: dmendez Date: Thu, 24 Mar 2022 14:04:23 -0300 Subject: [PATCH 1/2] Update HttpAjaxContext.java Support for multiple refresh executions for the same grid instance --- .../com/genexus/internet/HttpAjaxContext.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/java/src/main/java/com/genexus/internet/HttpAjaxContext.java b/java/src/main/java/com/genexus/internet/HttpAjaxContext.java index 4884f1cf9..9a0c68117 100644 --- a/java/src/main/java/com/genexus/internet/HttpAjaxContext.java +++ b/java/src/main/java/com/genexus/internet/HttpAjaxContext.java @@ -6,6 +6,8 @@ import java.util.Enumeration; import java.util.Hashtable; import java.util.Stack; +import java.util.Collections; +import java.util.Arrays; import com.genexus.diagnostics.core.ILogger; import com.genexus.diagnostics.core.LogManager; @@ -25,7 +27,8 @@ public abstract class HttpAjaxContext protected JSONObject Messages = new JSONObject(); private JSONObject WebComponents = new JSONObject(); private Hashtable LoadCommands = new Hashtable<>(); - private JSONArray Grids = new JSONArray(); + private ArrayList Grids = new ArrayList(); + private Hashtable DicGrids = new Hashtable(); private JSONObject ComponentObjects = new JSONObject(); protected GXAjaxCommandCollection commands = new GXAjaxCommandCollection(); protected GXWebRow _currentGridRow = null; @@ -465,13 +468,17 @@ public void ajax_rsp_assign_hidden_sdt( String SdtName, Object SdtObj) } } - public void ajax_rsp_assign_grid(String gridName, com.genexus.webpanels.GXWebGrid gridObj) + public void ajax_rsp_assign_grid(String gridName, com.genexus.webpanels.GXWebGrid gridObj, String Control) { - try { - Grids.putIndex(0, gridObj.GetJSONObject()); - } - catch (JSONException e) { - } + Object jsonObj = ((IGxJSONAble) gridObj).GetJSONObject(); + if (DicGrids.containsKey(Control)) { + Grids.set(DicGrids.get(Control), jsonObj); + } + else + { + Grids.add(jsonObj); + DicGrids.put(Control, Grids.size() - 1); + } } public void ajax_rsp_clear(){ @@ -566,6 +573,8 @@ protected String getJSONResponsePrivate(String cmpContext) GXJSONObject jsonCmdWrapper = new GXJSONObject(isMultipartContent()); try { + Collections.reverse(Arrays.asList(Grids)); + JSONArray JSONGrids = new JSONArray(Grids); if (commands.AllowUIRefresh()) { if (cmpContext == null || cmpContext.equals("")) @@ -578,7 +587,7 @@ protected String getJSONResponsePrivate(String cmpContext) jsonCmdWrapper.put("gxValues", AttValues); jsonCmdWrapper.put("gxMessages", Messages); jsonCmdWrapper.put("gxComponents", WebComponents); - jsonCmdWrapper.put("gxGrids", Grids); + jsonCmdWrapper.put("gxGrids", JSONGrids); } for(Enumeration loadCmds = LoadCommands.keys(); loadCmds.hasMoreElements();) { From 9cd58898508d63be5e74aa5fe1bf480c09587b59 Mon Sep 17 00:00:00 2001 From: dmendez Date: Thu, 24 Mar 2022 15:37:46 -0300 Subject: [PATCH 2/2] Update HttpAjaxContext.java Keep legacy generated code compatibility --- .../src/main/java/com/genexus/internet/HttpAjaxContext.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/java/src/main/java/com/genexus/internet/HttpAjaxContext.java b/java/src/main/java/com/genexus/internet/HttpAjaxContext.java index 9a0c68117..0d191dc66 100644 --- a/java/src/main/java/com/genexus/internet/HttpAjaxContext.java +++ b/java/src/main/java/com/genexus/internet/HttpAjaxContext.java @@ -468,6 +468,12 @@ public void ajax_rsp_assign_hidden_sdt( String SdtName, Object SdtObj) } } + public void ajax_rsp_assign_grid(String gridName, com.genexus.webpanels.GXWebGrid gridObj) + { + Object jsonObj = ((IGxJSONAble) gridObj).GetJSONObject(); + Grids.add(jsonObj); + } + public void ajax_rsp_assign_grid(String gridName, com.genexus.webpanels.GXWebGrid gridObj, String Control) { Object jsonObj = ((IGxJSONAble) gridObj).GetJSONObject();