Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    DataBinding null su Calendar

    In una detailsview ho inserito un calendar che è bindato su un campo del DB.
    Se il campo all'interno del db è == null, quando richiamo la detailsview in edit mode mi viene visualizzato il seguente messaggio d'errore: "Specified cast is not valid".

    Come posso risolvere questo inconveniente?

    Grazie & Ciao!

  2. #2
    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!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.