GDBG: ValidateFailed event

How can I create a custom errormessage if the validation for a cell fails? I got a messagebox saying "xx is not a valid value for Double" when I type "xx" in a "double-cell". I tested th following code in the ValidateFailed-event: MessageBox.Show("my custom errormessage","my title",0,MessageBoxIcon.Warning); e.Handled=true; That works if I move to the next cell by clicking in it with the mouse, but if I press TAB or Enter I still got the "xx is not a vaild..." messagebox... /Johan

6 Replies

AD Administrator Syncfusion Team May 5, 2004 10:52 AM UTC

In ValidateFailed, try setting this.gridDataBoundGrid1.CurrentCell.ErrorMessage = "my error message...";


JD Johan Djupmarker May 5, 2004 12:15 PM UTC

It works when I hit TAB, but I still got "xx is not a valid value for Double" if I hit Enter. /Johan


AD Administrator Syncfusion Team May 5, 2004 04:13 PM UTC

This worked for me in a sample (tabbing, entering, and clicking). Handle the CurrentCellValidating event and validate the value yourself. You can cancel it and set the ErrorMessage if the value is not a double.
private void gridDataBoundGrid1_CurrentCellValidating(object sender, CancelEventArgs e)
{
	GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell;
	if(cc.RowIndex > 0 && cc.ColIndex == 2)
	{
		double d;
		if(!double.TryParse(cc.Renderer.ControlText, 
			System.Globalization.NumberStyles.Any, null, out d))
		{
			e.Cancel = true;
			cc.ErrorMessage = "MyMessage";
		}
}


JD Johan Djupmarker May 6, 2004 03:37 AM UTC

It works, but require code for every column containing "double-values". Does the cc-object contain information about the cells datatype so I can write a function that validates every numeric column? /Johan


AD Administrator Syncfusion Team May 6, 2004 05:20 AM UTC

You can try using int field = this.grid.Binder.ColIndexToField(cc.ColIndex); Type t = this.grid.GridBoundColumns[field].StyleInfo.CellValueType; // t now has the System.Type // if you have not explicitly added GridBoundColumns, then use grid.Binder.InternalColumns instead of grid.GridBoundColumns


JD Johan Djupmarker May 6, 2004 06:35 AM UTC

Great, works fine! /Johan

Loader.
Up arrow icon