Show date as DD/MM/YYYY in DataGridTextBoxColumn

  • Thread starter Thread starter jtoulier
  • Start date Start date
J

jtoulier

Hello all,

We have a DataSet bound to a DataGrid, this DataSet has a datetime
column, coming from SQL Server.

We want to show this field on the DataGrid always as "DD/MM/YYYY",
ignoring user's regional configuration.

For example if the user has the date regional configuration as
"DD*MM*YYYY" (with stars), the DataGridTextBoxColumn shows the date as
"DD*MM*YYYY" even if our code is:

DataGridTextBoxColumn oTextBoxNatural = new DataGridTextBoxColumn();
oTextBoxNatural.MappingName = "datetime_field";
oTextBoxNatural.HeaderText = "Show date as DD/MM/YYYY";
oTextBox.Format = "dd/MM/yyyy";
oTextBoxNatural.Width = 100;
dty.GridColumnStyles.Add(oTextBoxNatural);

How can we show the date always as "DD/MM/YYYY"? We do not want to
depend on user's regional configuration since in our environment each
user configurates this as they want.

Thanks a lot.

Joseph Toulier
 
I would double check to make sure that the DataColumn.DataType property is
set to DateTime for that column.
If it isn't, the grid doesn't know how to apply that format string

/claes
 
Hi,

jtoulier said:
Hello all,

We have a DataSet bound to a DataGrid, this DataSet has a datetime
column, coming from SQL Server.

We want to show this field on the DataGrid always as "DD/MM/YYYY",
ignoring user's regional configuration.

For example if the user has the date regional configuration as
"DD*MM*YYYY" (with stars), the DataGridTextBoxColumn shows the date as
"DD*MM*YYYY" even if our code is:

DataGridTextBoxColumn oTextBoxNatural = new DataGridTextBoxColumn();
oTextBoxNatural.MappingName = "datetime_field";
oTextBoxNatural.HeaderText = "Show date as DD/MM/YYYY";

Assign a culture to FormatInfo that uses a "/" as seperator, like the
invariant culture:

oTextBoxNatural.FormatInfo = CultureInfo.InvariantCulture;
 
Hi Joseph,
The format of date to be displayed can be controlled by the ToString
function for the DateTime object used by passing a format string.
E.g., when you retrieve the date from the database in a DateTime
object, say DT, then you can display it as DT.ToString("dd/MM/yyyy") in
your case. This string can have all the date time combinations as
variants. Take care of the case of the letters, especially MM (mm would
mean minutes). The date time string so obtained can be used at all
required places.

I hope this meets your requirement.

Abhishek
 
Back
Top