Bonjour, je vous explique mon problème :
J'ai un GridView : gvContrat
Il a pour source un sqlDataSource, et il affiche les données concernant le contrat d'un client.
A priori ca marche bien, mais je cherche à exécuter du code quand le gridview est en mode édition.
En effet,dans mon EditTemplate, dans une colonne, j'ai un DropDownList (ID="DdlDflex") qui peut avoir commen valeur "oui" ou "non". Très simple, donc.
Dans une autre colonne j'ai un TextBox ("ID=TextBox1").
Ce que je voudrais c'est que si mon dropdownlist est égal à "non" alors mettre par défaut le textbox de l'autre colonne à 0, et le mettre aussi en ReadOnly.
Pour cela, j'ai fait cette fonction :
Seulement cela provoque une erreur quand je change la valeur du DropDownList, et donc quand j'exécute la fonction ci dessus:
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 protected void DdlDflex_SelectedIndexChanged(object sender, EventArgs e) { //gvContrat.DataBind(); if (((DropDownList)gvContrat.FindControl("DdlDflex")).SelectedValue == "non") { ((TextBox)gvContrat.FindControl("TextBox1")).Text = "0"; ((TextBox)gvContrat.FindControl("TextBox1")).ReadOnly = true; } if (((DropDownList)gvContrat.FindControl("DdlDflex")).SelectedValue == "oui") { //((TextBox)gvContrat.FindControl("TextBox1")).Text = ""; ((TextBox)gvContrat.FindControl("TextBox1")).ReadOnly = false; } }
Comment éviter cette erreur ? J'suis au bord de la crise de nerfs làLa référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
Erreur source:
Ligne 64 : gvContrat.DataBind();
Ligne 65 :
Ligne 66 : if (((DropDownList)gvContrat.FindControl("DdlDflex")).SelectedValue == "non")
Ligne 67 : {
Ligne 68 : ((TextBox)gvContrat.FindControl("TextBox1")).Text = "0";
Partager