Ik ben aan het zoeken geweest maar ik heb nog geen oplossing gevonden voor mijn probleem.
De situatie:
Ik heb 2 usercontrols. Voor het gemak noem ik die UCparent en UCchild.
Zoals de namen al doen vermoeden zijn de usercontrols genest.
UCparent heeft een DataGrid en in die DataGrid zit oa UCchild.
UCchild bevat meerdere DataGrids met specifieke details.
Velden in de DataGrids zijn oa decimal, integer en datetime.
De velden met type datetime heb ik op de HTML-kant geformateerd als volgt:
Nu heb ik het volgend probleem:
Toen de webapplicatie nog draaide als een ASPNET1.0-applicatie was er niks aan de hand en het heeft 2 jaar goed gewerkt.
Sinds een maand heb ik de applicatie omgezet naar een ASPNET1.1-applicatie.
Opzich werkt het prima op 1 ding na.
De datetime-velden worden nu niet meer geformateerd. Dus niet meer als DATUM maar als DATUM+TIJD. 14-09-2005 0:00:0 ipv 14-09-2005
De decimal-velden zijn nu 1000,00 geworden ipv 1000 en integer-velden zijn nu 1.000 ipv 1000.
Zelfs als ik in de Code-behind de String.Format in de ItemDataBound-event aanroep krijg ik hetzelfde resultaat.
In de Web.config zitten geen "rare" dingen. Wel heb ik de culture gezet op deze manier:
Het formateren van de datetime-velden doe ik altijd op deze manier zowel bij ASPNET1.0 als bij ASPNET1.1.
Dit is een work-around, maar daar zit ik niet op te wachten.
De situatie:
Ik heb 2 usercontrols. Voor het gemak noem ik die UCparent en UCchild.
Zoals de namen al doen vermoeden zijn de usercontrols genest.
UCparent heeft een DataGrid en in die DataGrid zit oa UCchild.
UCchild bevat meerdere DataGrids met specifieke details.
Velden in de DataGrids zijn oa decimal, integer en datetime.
De velden met type datetime heb ik op de HTML-kant geformateerd als volgt:
code:
1
2
3
4
5
6
7
| <asp:templatecolumn headertext="TGTDatum">
<headerstyle width="100px"></headerstyle>
<itemtemplate>
<asp:Label id=lblTGTDatum runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.TGTDatum", "{0:dd-MM-yyyy}") %>'>
</asp:label>
</itemtemplate>
</asp:templatecolumn> |
Nu heb ik het volgend probleem:
Toen de webapplicatie nog draaide als een ASPNET1.0-applicatie was er niks aan de hand en het heeft 2 jaar goed gewerkt.
Sinds een maand heb ik de applicatie omgezet naar een ASPNET1.1-applicatie.
Opzich werkt het prima op 1 ding na.
De datetime-velden worden nu niet meer geformateerd. Dus niet meer als DATUM maar als DATUM+TIJD. 14-09-2005 0:00:0 ipv 14-09-2005
De decimal-velden zijn nu 1000,00 geworden ipv 1000 en integer-velden zijn nu 1.000 ipv 1000.
Zelfs als ik in de Code-behind de String.Format in de ItemDataBound-event aanroep krijg ik hetzelfde resultaat.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| private void po_Grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView row = e.Item.DataItem as DataRowView;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lblTGTDatum = (Label)e.Item.FindControl("lblTGTDatum");
if (row != null)
{
lblTGTDatum.Text = String.Format("{0:dd-MM-yyyy}", row["TGTDatum"]);
}
}
} |
In de Web.config zitten geen "rare" dingen. Wel heb ik de culture gezet op deze manier:
code:
1
2
3
4
5
6
| <system.web> .... .... .... <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nl-NL" uiCulture="nl-NL"/> </system.web> |
Het formateren van de datetime-velden doe ik altijd op deze manier zowel bij ASPNET1.0 als bij ASPNET1.1.
code:
1
2
3
| lblTGTDatum.Text = row["TGTDatum"] == DBNull.Value
? String.Empty
: Convert.ToDateTime(row["TGTDatum"]).ToShortDateString(); |
Dit is een work-around, maar daar zit ik niet op te wachten.