Cellule

Une Cellule est l'unité la plus petite dans une grid.

1.png

ReoGridPos

Il y a une structure pour décrire la position d'une cellule:
var pos = new ReoGridPos(2, 1);   // ligne: 2, colonne: 1
var pos = new ReoGridPos("D5");   // ligne: 5, colonne: 4
Puisque l'instance d'une cellule peut être nulle, ReoGrid utilise ReoGridPos pour localiser une cellule.

Définir les données d'une cellule

Méthode

Définir la ligne à 0 et la colonne à 0:
grid[0, 0] = 10;                 // nombre
grid[0, 1] = "chaine"            // chaine
grid[0, 2] = DateTime.Now;       // datetime
Le Type d'une donnée peut être de n'importe quel type, Le texte affiché dans une grid sera converti en un string par la fonction call ToString. S'il la donnée est nulle, une chaine vide sera utilisée.
public class MyData { 
  public override string ToString() { return "mydata"; }
}
grid[0, 3] = new MyData();
Utiliser l'id pour localiser une cellule est également supporté :
grid["C3"] = "=A3+B3";
Certain type comme ci-dessous seront traités spéciallement :
object[,]        // tableau d'objet sera copié vers une plage
PartialGrid      // grid partiel sera copié vers une plage
CellBody         // une instance de CellBody sera définit dans une cellule
Ou bien vous pouvez utiliser ces méthodes:
grid.SetCellData(5, 2, "hello world");
grid.setCellData(new ReoGridPos(5, 2), "hello world");

Définir un tableau de donnée vers une plage:
grid.SetRangeData(new ReoGridRange(1, 1, 3, 3), new object[ , ] {
    { 'a', 'b', 'c' },
    { 1, 2, 3 },
    { 4, 5, 6 }
  });
ou :
grid[1,1] = new object[ , ] {
    { 'a', 'b', 'c' },
    { 1, 2, 3 },
    { 4, 5, 6 }
  });

17_2.png

Action

// Définir des données dans une cellule à la position  5,2 (ligne: 5, colonne: 2)
grid.DoAction(new RGSetCellDataAction(5, 2, "hello world"));

Script

Définir les données d'une cellule par script:
grid.getCell(5,2).data = 'hello world';

Instance de cellule

Au début, quand le contrôle grid est créé, ReoGrid ne crée pas d'instance de cellule en mémoire. Les instances de Cellule sont créées uniquement quand on définit une donnée ou un style pour une cellule.

Ci-dessous, la cellule A1 a une instance mais B1 n'en a pas.
2.png

Obtenir une instance de cellule

Obtenir une instance de cellule à la position (2,3):
var cell = grid.GetCell(2,3);
il est préférable car plus sûr de vérifier si la cellule n'est pas nulle avant d'accéder au style ou aux données de la cellule :
if (cell != null) {
    ...
}
Il y a une méthode interne appelée 'CreateAndGetCell' qui crée une instance de cellule automatiquement si la cellule est nulle. D'habitude le code utilisateur ne devrait pas utiliser cette méthode mais l'instance d'une cellule doit être pilotée par ReoGrid automatiquement.
var cell = CreateAndGetCell(2, 3);

Formattage des données automatiquement

Quand les données doivent être définies au début, ReoGrid essaye de tester les données et le type afin de formatter les données. Si les données sont un nombre ou un pourcentage alors l'alignement horizontal du texte de la cellule sera définit à Droite automatiquement.

Si vous voulez désactiver cette fonctionnalité, définissez Edit_AutoFormatCell du paramétrage du contrôle à FALSE.
grid.SetSettings(ReoGridSettings.Edit_AutoFormatCell, false);
Pour en savoir plus sur le Formattage des données et le paramétrage.

Suivant: Lignes et Colonnes

Last edited Feb 7, 2014 at 7:59 AM by unvell, version 10