2017-01-05 4 views
0

J'ai un DhtmlXGrid qui a des boutons de liaison et une fonctionnalité de tri. Cela fonctionnait très bien, cependant, j'ai récemment ajouté le splitAt() pour prendre en charge les colonnes fixes, après ce lien, les onClick ne sont pas appelés après avoir cliqué sur les en-têtes de grille pour le tri. ci-dessous est mon code,Les LinkButtons de DhtmlXGrid ne fonctionnent pas après SplitAt()

function initGrid() { 
setGridSize(); 
gridMenu.setIconsPath('..'); 
gridMenu.setImagePath('..); 
gridMenu.renderAsContextMenu(); 
gridMenu.attachEvent('onClick', onButtonClick); 
gridMenu.loadXML('..'); 
grid.setIconsPath('@urlDhtmlxImages'); 
grid.setImagesPath('@urlDhtmlxImages'); 
grid.enableContextMenu(gridMenu); 
grid.attachEvent("onBeforeContextMenu", onShowMenu); 
grid.setSkin('dhx_black'); 
grid.enableColumnAutoSize(false); // Double-click header will size to fit 
// grid.attachEvent("onBeforeSorting", onBeforeSort); 
grid.attachEvent("onEditCell", onEditCell); // Edit Cell 
//grid.attachEvent("onCellMarked", onCellChanged); 
var combobox1 = grid.getCombo(4); 
combobox1.put("Yes", "Yes"); 
combobox1.put("No", "No"); 

var combobox2 = grid.getCombo(5); 
combobox2.put("Yes", "Yes"); 
combobox2.put("No", "No"); 
//grid.enableSmartRendering(true); 
//grid.attachEvent("onDhxCalendarCreated", createCalender); 
grid.init(); 
grid.splitAt(1); 
grid.load('...', FillGirdDataOnPageLoad, 'xml'); 

} 


this is how I'm calling Link actions, 
// Set up action links 
$("a.action-link[data-link-init='0']").each(function (e) { 
$(this).attr('data-link-init', '1'); 
$(this).click(function (e) { 
onActionLinkClick($(this).prop('id')); 
if (e) { e.preventDefault ? e.preventDefault() : e.returnValue = false; }; 
}); 
}); 

Répondre

1
grid.attachEvent("onAfterSorting", function (index, type, direction) { 
$("a.action-link[data-link-init='1']").each(function (e) { 
$(this).click(function (e) { 
onActionLinkClick($(this).prop('id')); 
if (e) { e.preventDefault ? e.preventDefault() : e.returnValue = false; }; 
}); 
}); 
}); 
0

Je dois installer les ActionLinks à nouveau afterSorting,

grid.attachEvent("onAfterSorting", function (index, type, direction) { 
$("a.action-link[data-link-init='1']").each(function (e) { 
$(this).click(function (e) { 
onActionLinkClick($(this).prop('id')); 
if (e) { e.preventDefault ? e.preventDefault() : e.returnValue = false; }; 
}); 
}); 
}); 

Cela fonctionne pour moi.