We are winding down our evaluation of the dhtmlxTreeGrid. So far we are happy with the functionality and results. However, we have run into a significant bug that would prevent us from selecting the product if it cannot be addressed.
When changing the sort order of a column or applying a column filter and then serializing the table for submission, the changes are not present in the serialized xml. The xml contains the original column values. This occurs even though we can visually see the changed values in the control before and after having applied the filters and/or sort.
Can you please confirm your ability to replicate the bug and your ability to provide a fix so that we would be able to make our product selection?
Unfortunately issue can’t be reconstructed locally. All data changes in grid is included in serialization without relation to the sorting and filtering state.
If issue still occurs for you - please provide any kind of sample where issue can be reconstructed ( or demo link ) , you can send such info directly to support@dhtmlx.com
This is very repeatable for us.
Here is the javascript that I am using to load the table:
var gridEditMembers = null;
function doInitEditMembersGrid(pstrUrlLoadGroupMembers)
{
showWait();
gridEditMembers = new dhtmlXGridObject('divEditGroupMembers');
gridEditMembers.setImagePath("<s:url value="%{getText('casf.dir.dhtmlx') + '/imgs/icons_greenfolders/'}"/>");
gridEditMembers.kidsXmlFile=pstrUrlLoadGroupMembers;
gridEditMembers.attachEvent("onXLS", function(){showWait()});
gridEditMembers.attachEvent("onXLE", function(){hideWait();});
gridEditMembers.attachEvent("onEditCell", changeValue);
gridEditMembers.loadXML(pstrUrlLoadGroupMembers);
gridEditMembers.init();
} // end doInitEditMembersGrid
function changeValue(pintEditStage, pstrRowId, pintCellIndex, pstrNewValue, pstrOldValue)
{
if(2 == pintEditStage && pstrNewValue != pstrOldValue)
{
if( pstrNewValue == "<s:property value="valueExluded"/>" ||
(pstrNewValue == "<s:property value="valueHierarchy"/>" && pstrOldValue == "<s:property value="valueExluded"/>"))
{
gridEditMembers._h2.forEachChild(pstrRowId, function(element){
gridEditMembers.cells(element.id, 1).setValue(pstrNewValue);
});
} // end if
} // end if
return true;
} // end changeValue
Here is the XML that we are loading to setup the table. I have not included the data rows as they would seem irrelevant:
<?xml version="1.0" encoding="UTF-8"?>
<rows parent="0">
<head>
<beforeInit>
<call command="setSkin"><param>modern</param></call>
<call command="enableTreeCellEdit"><param>false</param></call>
<call command="enableSmartXMLParsing"><param>true</param></call>
<call command="enableTreeGridLines"></call>
</beforeInit>
<afterInit>
<call command="enableSmartRendering"><param>true</param></call>
<call command="attachHeader">
<param>#text_filter,#select_filter,#text_filter,#select_filter,#select_filter,#text_filter,#select_filter</param>
</call>
<call command="setFiltrationLevel"><param>-2</param></call>
<call command="splitAt"><param>2</param></call>
<call command="setSerializableColumns">
<param>false,true,false,false,false,false,false</param>
</call>
</afterInit>
<column width="350" type="tree" align="left" sort="str">
Name
</column>
<column width="100" type="co" align="left" sort="na">
Manage
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
</column>
<column width="90" type="ro" align="left" sort="str">
Code
</column>
<column width="90" type="ro" align="left" sort="str">
Type
</column>
<column width="150" type="ro" align="left" sort="str">
Group
</column>
<column width="150" type="ro" align="left" sort="str">
City
</column>
<column width="50" type="ro" align="left" sort="str">
State
</column>
</head>
...ROW DATA HERE....
</rows>
Problem is confirmed, combination of SmartRendering and splitAt in TreeGrid can produce such problem.
Please contact us directly at support@dhtmlx.com - there is a fix , which is not included in current version, but will be a part of next version.
Thank you for the quick followup.
Can you please confirm a few things then for me?
- When will the next release be available?
- I thought I tried it without SmartRendering and still experienced the same problem.
Thank you!
Thank you!
I was able to confirm that without enabling the split column everything works fine. For me SmartRendering seemed to have no affect on the issue.
- Smart Rendering with split column does not work.
- Smart Rendering without split column works.
- No Smart Rendering with split column does not work.
- No Smart Rendering without split column works.
Thank you!