I have one datagridview which has one column of date data type.
Now i am using datagridview "CellFormatting" event to display date in MM-dd-YYYY format along with time
Now when i am editing date field and press tab key to go next cell.
AT that time if date value is like this "09-05-2021 02:16 PM" then it is working perfectly
and showing edited value in that cell.
if date value is like this "01-25-2021 08:32 AM" at that time it is showing
String Was Not Recognized As A Valid DateTime exception.
I have check this in datagridview _DataError event.
so how to solve it ?
What I have tried:
To display date column in data gridview in MM-dd-YYYY format along with time.
CellFormatting Event
if (e.ColumnIndex == 5)
{
String value = e.Value as string;
string inputString;
DateTime dDate;
inputString = e.Value.ToString();
if (DateTime.TryParse(inputString, out dDate))
{
e.Value = string.Format("{0:MM/dd/yyyy hh:mm tt}", dDate);
e.FormattingApplied = true;
}
else
{
}
}
Code which will be called on gridview CellEndEdit event to convert date in format
string value2 = grvJobList.Rows[e.RowIndex].Cells[5].Value.ToString() as string;
if (e.ColumnIndex == 5 & e.RowIndex > -1)
{
if ((value2 != null) && (value2 != string.Empty))
{
string inputString = "2000-02-02";
DateTime dDate = DateTime.Now;
inputString = string.Format("{0:MM/d/yyyy}", value2);
inputString = value2.ToString();
if (DateTime.TryParse(inputString, out dDate))
{
value2 = string.Format("{0:MM/dd/yyyy hh:mm tt}", dDate);
grvJobList.Rows[e.RowIndex].Cells[5].Value = value2;
grvJobList.Rows[e.RowIndex].Cells[5].Tag = inputString;
}
else
{
grvJobList.Rows[e.RowIndex].Cells[5].Tag = inputString;
}
}
else
{
}
}