Bonjour

Quand je laisse le champ 'begdat' (d'un gridview en mode edit) vide ou tout sauf une date valide, j'ai l'erreur "Not a date 1" et le programme stoppe et je dois rentrer une date valide. Le message "Not a date 2." n'apparaît pas de la ligne 16.

Mais si j'enlève les lignes 13 à 17 en quittant le champ 'begdat' vide ou avec n'importe quoi alors je n'ai plus le message "Not a date 1" mais bien à la ligne 18 le message
String was not recognized as a valid DateTime
Vu que les conditions sont remplies pour activer la ligne 4 (champ vide ou tout sauf une date valide), pourquoi ne le fait-il pas et continue-t-il jusqu'au bout?
Y-a-t-il une priorité entre le code serveur et le code client?
Merci

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
protected void GridView1_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)  
    GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];  
    TextBox begdattxt = (TextBox)row.FindControl("begdat");  
    if (!DateTime.TryParse(begdattxt.Text,out newDate))  
    {  
        e.Cancel = true;  
        ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", " alert('Not a date 1.');", true);
    }  
    else  
    {  
        begdat = Convert.ToDateTime(e.NewValues["begdat"]);  
    }
 
    if (!DateTime.TryParse(begdattxt.Text, out newDate) || !DateTime.TryParse(enddattxt.Text, out newDate))  
    {  
        e.Cancel = true;  
        ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", " alert('Not a date 2.');", true);
    } 
 
    else if (Convert.ToDateTime(enddattxt.Text) < Convert.ToDateTime(begdattxt.Text))  
    {  
        e.Cancel = true;  
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", " alert('endate must be >= begindate.');", true);  
        enddattxt.Focus();  
    }
}