Torna al Thread

protected void btn_anno_Click(object sender, EventArgs e) { //prima di tutto, cotnrollo se è effettivamente un numero. Ho messo un try/ catch, //ma puoi gestirla anche in altri modi (tipo le regex, credo) DateTime time = new DateTime(); try { // stupidata, ma è tanto epr fare un controllo: se il testo inserito time = new DateTime(Convert.ToInt32(tb_anno.Text), 1, 1); } catch { //lancio un alert javascript per segnalare il formato errato dell'inserimento string s = "<script language='javascript'>"; s += " alert('ATTENZIONE! Formato dell\\'anno non valido');"; s += "</script>"; Page.ClientScript.RegisterStartupScript(s.GetType(), "errore", s); return; } //se il controllo è ok, mi creo il mio DataTable, con una sola colonna DataTable dt = new DataTable(); DataColumn dc1 = new DataColumn("ANNO"); dt.Columns.Add(dc1); //primo ciclo: per ogni mese dell'anno prescelto mi faccio restituire i giorni for (int i = 1; i < 12; i++) { int dayForMonth = Convert.ToInt32(((new DateTime(Convert.ToInt32(tb_anno.Text), i, 1)).AddMonths(1)).AddDays(-1).Day); //secondo ciclo: per i giorni di ogni mese mi creo una nuova data e vado a vedere se il giorno della settimana è un lunedì (=1) for (int x = 1; x < dayForMonth; x++) { DateTime ndt2 = new DateTime(Convert.ToInt32(tb_anno.Text), i, x); //Se è un lunedì, creo una nuova riga del mio dataTable e ci metto la mia stringa di data if (Convert.ToInt32(ndt2.DayOfWeek) == 1)//lunedì { DataRow drw = dt.NewRow(); //ho scelto la "M", che mi restituisce tipo: "01 Aprile". //Per altre opzioni ti rimando a http://msdn.microsoft.com/it-it/library/az4se3k1.aspx drw[0] = ndt2.ToString("M"); dt.Rows.Add(drw); dt.AcceptChanges(); } } } //dopo avere riassociato la riga al mio dataTable, bindo i dati al mio gridview gv.DataSource = dt; gv.DataBind(); //Se il testo inserito è l'anno di una data, diventa l'intestazione della mia riga gv.HeaderRow.Cells[0].Text = time.Year.ToString(); }
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5