C# asp.net Estrarre mese anno

venerdì 09 giugno 2006 - 18.23

bluelions Profilo | Senior Member

Salve
volevo sapere se in c#, asp.net è possibile estrarre la data con formato mese anno abbreviato in questo modo
Giu 06
ed inoltre dovrei partire e fare una scansione dal mese corrente fino ad un anno, cioè se mi trovo a giugno 2006 dovrei ottenere una riga tipo
giu 06 - lug 06 - ago 06 e così via fino a giu 07.
e' possibile?

freeteo Profilo | Guru

>Salve
Ciao

>volevo sapere se in c#, asp.net è possibile estrarre la data
>con formato mese anno abbreviato in questo modo
>Giu 06
Devi formattare la data con il mese a 3, ovvero con questa formattazione: " MMM yy "
Qualcosa tipo: <%# Eval("data","{0:MMM yy}") %> oppure ad esempio : DateTime.Now.ToString(" MMM yy ")


>ed inoltre dovrei partire e fare una scansione dal mese corrente
>fino ad un anno, cioè se mi trovo a giugno 2006 dovrei ottenere una riga tipo
>giu 06 - lug 06 - ago 06 e così via fino a giu 07.
>e' possibile?
Cosa intendi per ottenere "1a riga"? cmq puoi provare a lavorare con 1 repeater dove li passi tu la lista dei mesi, ottenuti sommando da 1a data i vari mesi fino all'anno seguente, ovvero qualcosa del tipo:

protected void Page_Load(object sender, EventArgs e) { ArrayList zArr = new ArrayList(); DateTime zData = DateTime.Now; do { zArr.Add(zData); zData = zData.AddMonths(1); } while (zData < DateTime.Now.AddYears(1)); rptDate.DataSource = zArr; rptDate.DataBind(); } ------------------------------- .... ------------------------------- <asp:Repeater ID="rptDate" runat="server"> <ItemTemplate> <%# ((DateTime)Container.DataItem).ToString("MMM yy") %> </ItemTemplate> </asp:Repeater>
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bluelions Profilo | Senior Member

Salve
ho visto l'esempio e funziona correttamente,però vorrei gestire "itemDataBound da codice", come faccio a caricarmi la lista? dovrei prendere la variabile.
Dovrei fare così:
Nel page_load:
protected void GetlistaData()
{
ArrayList zArr = new ArrayList();
DateTime zData = DateTime.Now;
do
{
zArr.Add(zData);
zData = zData.AddMonths(1);

} while (zData < DateTime.Now.AddYears(1));

rptDate.DataSource = zArr;
rptDate.DataBind();

}

poi chiamo
protected void rptDate_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

}
ora qui come mi carico i dati...da tenere presente che ho nell'item un linkbutton.

freeteo Profilo | Guru

ciao,
nell'ItemDataBound puoi tranquillamente prenderti il riferimento al dataitem che ti da il parametro "e" di quella riga, convertendolo ("castandolo") nel tipo di dato che gli passi come sorgente.Nell'esempio era 1 DateTime:

protected void rptDate_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
(DateTime)e.Item.DataItem .....

e se poi dentro li devi alimentare 1a sottolista, magari 1 repeater con il valore della data dove sei lo recuperi con il metodo "FindControl" :
... crei 1a vista come variabile globale... DataView miaVista = new DataView(....... .... protected void rptDataBound(object sender, RepeaterItemEventArgs e) { miaVista.RowFilter = "data='" + (DateTime)e.Item.DataItem + "'"; Repeater mioRepeater = (Repeater)e.Item.FindControl("sottoRepeater"); mioRepeater.DataSource = miaVista; mioRepeater.DataBind(); ....
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5