Exécution de Script

L'exécution de script comme ECMAScript est supportée par le contrôle ReoGrid.
ReoGrid utilise ReoScript, un moteur de language script comme ECMAScript, pour évaluer des formules et exécuter des scripts.

Interaction entre deux modules

18.png
Pour plus d'informations sur ReoScript voir reoscript.codeplex.com.

API pour exécuter des scripts

La variable 'grid' est l'objet global qui pointe toujours sur l'instance du contrôle. exemple :
grid.RunScript("alert('hello world');");
ou
grid.Script = "alert('hello world');";
grid.RunScript();
La propriété Script sera sauvée et chargée automatiquement pendant la sérialisation XML.

Définir les données d'une cellule par script

// Obtenir la position pos(0,0) d'une cellule et définir son contenu égal à 'hello world'
grid.getCell(0,0).data = 'hello world';

34.png

Lier des évènements

Evènement selectionChanged

26.png
grid.selectionChanged = function() {
  console.log('la selection a changé: ' + grid.selection.range);
};

évènement cellDataChanged (changement des données d'une cellule)

27.png
grid.cellDataChanged = function(cell) {
  console.log('cell at ' + cell.pos + ' changed data: ' + cell.data);
};

Evènements disponible dans un Script

Evènement Quand Arguments
onmousedown Quand l'utilisateur enfonce un bouton de la souris dans n'importe quelle cellule Objet Position
onmouseup Quand l'utilisateur relâche un bouton de la souris dans n'importe quelle cellule Objet object
onkeydown Quand l'utilisateur appuie sur des touches du contrôle KeyEventArg object
onkeyup Quand l'utilisateur relâche des touches du contrôle KeyEventArg object
oncelledit Avant de commencer l'édition d'une cellule Cell object
ondatachange Après que les données de la cellule soient changées Cell object
onselectionchange Après que la sélection de la plage ait changée Aucun
onnextfocus Quand le focus de la cellule passe à la cellule suivante après que l'utilisateur a appuyé sur la touche Entrée Aucun
onload Après que le contrôle ait été initialisé Aucun
unload Avant que le contrôle ne soit disposé Aucun
oncopy Avant que le contrôle ne commence une copie Aucun
onpaste Avant que le contrôle ne commence un coller Aucun
oncut Avant que le contrôle ne commence un couper Aucun

Tous les noms des évènements ont changé en minuscules depuis la version v0.8.5

Annulation des opérations en retournant faux (False)

Les évènements dans un script qui retournent faux indiquent au contrôle l'annulation des opérations courantes.
grid.cellBeforeEdit = function(cell) {
    if(cell.row == 2 && cell.col == 3) {
        return false;
    }
};

Personnaliser les évènements d'un script

Il est possible de personnaliser un évènement dans un script, puis de le lever (l'exécuter) depuis C#. Par exemple l'évènement bound (lier) comme ceci :
grid.myevent = function() { ... };            // évènement lié dans le script 
Pour exécuter cet évènement :
grid.RaiseScriptEvent("myevent");             // évènement exécuté en C#
La méthode RaiseScriptEvent retourne une valeur de type objet, c'est la valeur retournée depuis le script :
grid.myevent = function() { return false; };
Du coté du C# :
bool rs = ScriptRunningMachine.GetBoolValue(grid.RaiseScriptEvent("myevent"));
if (!rs) {
  ... 
}

Suivant : Fonction personnalisée

Last edited Feb 7, 2014 at 7:09 AM by unvell, version 9