T
TS
Hello, I have a control that inherits from GridView and i'm overriding
databinding. My control works correctly but is not respecting the
DataFormatString property that i'm setting on the field. As you will notice,
i am using column information from meta data. The actual format string from
meta data is "{0:d}" and the field type is a dateTime show it should show a
short date.
Why isn't this one property formatting correctly?
thanks
protected override void OnDataBinding(EventArgs e){
IList list = Utils.Utils.GetDomainObjectList(DomainObjectListKey);
bool gridViewHasDataRows = (list != null && list.Count > 0);
CreateColumns(gridViewHasDataRows);
if (DataSource == null)
DataSource = list;
base.OnDataBinding(e);
}
protected void CreateColumns(bool gridViewHasDataRows)
{
if (MetaData == null) MetaData =
GridViewMetaData.GetGridViewMetaData(MetaDataId);
DataControlField dcf = new BoundField();
Columns.Clear();
foreach (GridViewColumnMetaData columnMetaData in MetaData.Columns)
{
((BoundField)dcf).DataField = columnMetaData.PropertyName;
((BoundField)dcf).DataFormatString = columnMetaData.DataFormatString;
//Here is the line that I am setting it
dcf.HeaderText = columnMetaData.HeaderText;
if (columnMetaData.IsSortable) dcf.SortExpression =
columnMetaData.SortPropertyName;
dcf.Visible = columnMetaData.IsDisplayed;
dcf.ItemStyle.HorizontalAlign = columnMetaData.HorizontalAlign;
dcf.ItemStyle.Width = columnMetaData.Width;
Columns.Add(dcf);
}
}
databinding. My control works correctly but is not respecting the
DataFormatString property that i'm setting on the field. As you will notice,
i am using column information from meta data. The actual format string from
meta data is "{0:d}" and the field type is a dateTime show it should show a
short date.
Why isn't this one property formatting correctly?
thanks
protected override void OnDataBinding(EventArgs e){
IList list = Utils.Utils.GetDomainObjectList(DomainObjectListKey);
bool gridViewHasDataRows = (list != null && list.Count > 0);
CreateColumns(gridViewHasDataRows);
if (DataSource == null)
DataSource = list;
base.OnDataBinding(e);
}
protected void CreateColumns(bool gridViewHasDataRows)
{
if (MetaData == null) MetaData =
GridViewMetaData.GetGridViewMetaData(MetaDataId);
DataControlField dcf = new BoundField();
Columns.Clear();
foreach (GridViewColumnMetaData columnMetaData in MetaData.Columns)
{
((BoundField)dcf).DataField = columnMetaData.PropertyName;
((BoundField)dcf).DataFormatString = columnMetaData.DataFormatString;
//Here is the line that I am setting it
dcf.HeaderText = columnMetaData.HeaderText;
if (columnMetaData.IsSortable) dcf.SortExpression =
columnMetaData.SortPropertyName;
dcf.Visible = columnMetaData.IsDisplayed;
dcf.ItemStyle.HorizontalAlign = columnMetaData.HorizontalAlign;
dcf.ItemStyle.Width = columnMetaData.Width;
Columns.Add(dcf);
}
}