Ho un Telerik.WinControls.UI.RadGridView con più colonne al suo interno. Sto usando un mix di rowvalidation e cellvalidation per convalidare l'input che ottengo (anche se per il problema corrente ho anche provato a disattivare la rowvalidation ma ho ancora ottenuto gli stessi risultati).Visualizzazione dei messaggi di errore di convalida di una cella sotto forma di win telerik
Possiedo un daterow per il quale utilizzo l'evento cellvalidating per convalidarlo (altrimenti ottengo un'eccezione se un utente digita una data errata). Il comportamento che mi aspettavo era che il messaggio di errore fosse visualizzato e la cella non fosse stata convalidata. La seconda cosa ha funzionato, ma il messaggio di errore SOLO viene visualizzato quando Sposto il mouse sul bordo della cella (altrimenti non viene mostrato).
Quindi la mia domanda sarebbe: come potrei ottenere che il messaggio di errore venga visualizzato non appena e finché viene rilevato un errore durante la convalida?
ecco il codice cellvalidation che uso:
void MainFormGridView_CellValidating(object sender, CellValidatingEventArgs eventArgs)
{
var currentCell = eventArgs.Row.Cells[eventArgs.ColumnIndex];
if (eventArgs.Column.Name == "OrderDate")
{
if (eventArgs.Value == null)
{
eventArgs.Cancel = true;
}
else
{
try
{
DateTime dateValue;
if (!DateTime.TryParse(eventArgs.Value.ToString(), out dateValue))
{
eventArgs.Cancel = true;
}
}
catch
{
// Error occured so validation error!
eventArgs.Cancel = true;
}
}
if (eventArgs.Cancel)
{
currentCell.ErrorText = "Error no valid date! Please type in a valid date";
}
else
{
currentCell.ErrorText = string.Empty;
}
}
}
Ho cancellato il mio precedente commento come in un punto che hai ragione usando l'evento "mouseover" (o più mousemove) fa parte di una possibile soluzione, anche se di gran lunga non è l'unica parte. – Thomas