2011-01-06 3 views
2

J'utilise le contrôle GridDataBoundGrid de Syncfusion et ma liaison à ma liste personnalisée. L'une des propriétés est Nullable DateTime (DateTime?). Lorsque j'ajoute une nouvelle ligne à la grille et commence à éditer dans la colonne DateTime, Si je tape Alphanumérique, une boîte de message affiche quelque chose comme "XX n'est pas une valeur valide pour Nullable '1". 1. Comment puis-je gérer cela pour mettre un maessage plus significatif?SyncFusion GridDataBoundGrid DataBinding Problème

J'apprécierais la solution.

Répondre

1

L'événement CurrentCellErrorMessage sera déclenché avant d'afficher le message d'erreur. Vous pouvez gérer cet événement et afficher votre MessageBox personnalisé et annuler l'événement. Vous pouvez également définir votre texte personnalisé sur la propriété Text. Le code suivant montre l'implémentation de la même chose.

private void Form1_Load(object sender, EventArgs e) 
{ 
this.gridDataBoundGrid.CurrentCellErrorMessage += new GridCurrentCellErrorMessageEventHandler(gridDataBoundGrid_CurrentCellErrorMessage); 
} 

void gridDataBoundGrid_CurrentCellErrorMessage(object sender, GridCurrentCellErrorMessageEventArgs e) 
{ 
//e.Text = "My Text"; 
MessageBox.Show("Type your custom message here. The original text is: \"" + e.Text+ "\""); 
e.Cancel = true; 
} 
+0

Merci beaucoup Arulraj. Ça marche. – Ram

+0

Salut Arulraj, j'ai un autre problème. Dans My GridDataBoundGrid, les lignes utilisateur sont ajoutées et modifiées dynamiquement. Si elles ajoutent une ligne et inscrivent des informations dans les cellules et cliquent sur un bouton de sauvegarde sur le formulaire, les données ne sont pas mises à jour dans la source de données sous-jacente. Ils doivent sélectionner une autre ligne afin de mettre ces changements à jour dans la source de données. Est-il possible de forcer la mise à jour de la source de données après la modification de la cellule> – Ram

4

Utilisez DirectSaveCellInfo propriété pour enregistrer une fois que vous avez terminé la modification d'une cellule.

this.gridDataBoundGrid1.Binder.DirectSaveCellInfo = true;