Risolto più o meno da solo:
Ho optato per una soluzione sporca: ho inserito il defaultvalue in fase di inserimento: ho messo una data che non sarà mai utilizzata.
Dopodichè effettuo un controllo su questa data e la considero come se fosse un campo null (spero di essermi spiegato decentemente):
codice:
<InsertParameters>
<asp:Parameter Name="data_fine" Type="DateTime" DefaultValue="1800/01/01 00.00.00" />
codice:
protected void DetailsView1_DataBound(object sender, EventArgs e)
{
DateTime data_fuffa2 = new DateTime(1800, 1, 1, 0, 0, 0);
DateTime data_fuffa = new DateTime(1, 1, 1, 0, 0, 0);
//controllo il calendar2, ovvero quello relativo alla data di chiusura della commessa
Calendar myCalendar2 = (Calendar)DetailsView1.Rows[5].FindControl("Calendar2");
if (myCalendar2 != null)
{
if (myCalendar2.SelectedDate == data_fuffa)
{
myCalendar2.SelectedDate = DateTime.Now;
//myCalendar.VisibleDate = myCalendar.SelectedDate;
}
else if (myCalendar2.SelectedDate == data_fuffa2)
{
myCalendar.VisibleDate = DateTime.Today;
}
else
{
myCalendar2.VisibleDate = myCalendar2.SelectedDate;
}
}
else
{
//this.Label_error.Text = "Sto modificando ma non trovo il controllo";
}
//controllo label2, ovvero quella relativa alla data di chiusura della commessa
Label myLabel2 = (Label)DetailsView1.Rows[5].FindControl("Label2");
if (myLabel2 != null)
{
if (myLabel2.Text == "01/01/1800 0.00.00")
{
myLabel2.Text = "-- aperta --";
}
}
else
{
//this.Label_error.Text = "Sto modificando ma non trovo il controllo";
}
}
else
{
//Label_error.Text = "Non c'è nulla da trovare... :(";
}
}
... non mi piace molto come soluzione, ma dato che funziona per il momento va bene così.
Grazie & Ciao!