J'utilise une bibliothèque pour React et j'ai une liste (tableau) d'en-têtes et de l'autre côté un tableau contenant les données du tableau.
Après avoir lu la documentation, j'ai pu activer le menu dans lequel j'ai ajouté les options "Ajouter une colonne à gauche" et "Ajouter une colonne à droite", mais cela n'a été fait que visuellement et n'a pas mis à jour le titre dans l'état React.
J'ai essayé deux méthodes. La deuxième méthode est "Configuration déroulante personnalisée", j'ai ajouté les colonnes manuellement et utilisé la méthode pratique "updateSettings" pour mettre à jour l'en-tête, mais ça ne marche toujours pas (parfois ça marche, parfois ça ajoute les colonnes ailleurs).
function addToHeader (array, index, side, valor) { if (side === "Left") array.splice(index, 0, valor) else if (side === "Right") array.splice(index + 1, 0, valor) return array } 在代码中: dropdownMenu: { items: { col_right: { name: 'Move column right', callback: (key: any, selection: any, clickEvent: any) => { const column = selection[0].end.col headers = addToHeader(headers, column, "Right", 'New column') console.log('headers', headers) // 返回正确更改的数组 hot.updateSettings({ colHeaders: headers }) } }, col_left: { name: 'Move column left', callback: (key: any, selection: any, clickEvent: any) => { const column = selection[0].end.col headers = addToHeader(headers, column, "Left", 'New column') console.log('headers', headers) // 返回正确更改的数组 hot.updateSettings({ colHeaders: headers }) } }, }
J'ai accompli cette tâche comme suit :
Le fait est que ce que je n'avais pas réalisé auparavant, c'est qu'en plus du statut de l'en-tête du tableau qui n'est pas mis à jour, lors du déplacement des colonnes, les données du tableau doivent également être mises à jour, c'est là que j'ai implémenté une fonction js pour déplacer les informations (
moveColumnTable
)Important : j'ai implémenté cette fonction pour déplacer une seule colonne