We have a grid that uses the DataProcessor for loading data, header menu and grid menu is enabled. Sorting is initially done on one specific column and I see the tiny arrow indicating direction is there, however when I click on any of the columns, the arrow does not jump to that column, and clicking on the initial column does not change the sort direction. I don’t get any onBeforeSorting events either.
The type, sorting etc. is set through a generated XML, imagine about 100 columns like these:
Why would sorting be disabled?
<column id="Tag^Name" hidden="False" type="combo" sort="str" format="" align="left" width="135"><div style="text-align:center; margin-left:-7px; margin-right:4px;">Tag:Tag Name</div></column>
<column id="Tag^Type" hidden="False" type="txt" sort="str" format="" align="left" width="135"><div style="text-align:center; margin-left:-7px; margin-right:4px;">Tag:Tag Type</div></column>
<column id="Tag^Description" hidden="False" type="txt" sort="str" format="" align="left" width="135"><div style="text-align:center; margin-left:-7px; margin-right:4px;">Tag:Description</div></column>
oGrid.setImagePath(URL_GRID_IMAGES);
oGrid.setSkin(SKIN_NAME);
oGrid.enableSmartRendering(true);
oGrid.enablePreRendering();
oGrid.enableMultiselect(true);
oGrid.enableBlockSelection(false);
oGrid.forceLabelSelection(true);
oGrid.enableKeyboardSupport(true);
oGrid.enableColumnMove(true);
if (oTabProps.TableType == enuTable.enuAudit || oTabProps.TableType == enuTable.enuEvent || oTabProps.TableType == enuTable.enuReport) {
oGrid.enableMultiline(true);
}
oGrid.LastScrollX = 0;
oGrid.LastScrollY = 0;
oGrid.LastResetViewY = 0;
oGrid.markedCells = false;
oGrid.moveToVisibleA = oGrid.moveToVisible; // Override move to visible behavior
oGrid.moveToVisible = function (a) {
return this.moveToVisibleA(a, true);
}
AddGridHeaderMenu(oGrid, oTabProps.TableType, oTabProps.DatabaseID);
AttachGridEvents(oGrid); // Attach event handlers
function AddGridHeaderMenu(oGrid, nTableType, sDatabaseID) {
var menuHeader;
var sURLMenu;
menuHeader = new dhtmlXMenuObject(); // Grid context menu initialization\setup
oGrid.hdr.id = oGrid.id + "_HeaderContextZone";
menuHeader.ParentID = oGrid.id;
menuHeader.setIconsPath(URL_MENU_IMAGES);
menuHeader.setSkin(SKIN_NAME);
menuHeader.setOverflowHeight(20);
menuHeader._scrollUpTMTime = 10;
menuHeader._scrollDownTMTime = 10;
menuHeader.renderAsContextMenu();
menuHeader.addContextZone(oGrid.hdr.id);
AttachGridHeaderMenuEvents(menuHeader); // Attach menu event handlers
oGrid.HeaderMenu = menuHeader; // Add reference to header menu
}