Bonjour,
Pour gérer les exception de dropdownlist bindé, j'ai crée une petit méthode qui me permet de gérer la fiat que certaines entrée sont incorrects :
Code:
public static void DDL_Helper(DropDownList ddl, string value) { try { ddl.SelectedValue = value; ddl.EnableViewState = false; } catch (ArgumentOutOfRangeException) { ddl.EnableViewState = false; ListItem wrong = new ListItem("Indéterminable", string.Empty); ddl.ToolTip = ddl.ToolTip + "\n la valeur étant non conforme, vous devez la renseigner pour pouvoir enregister les modifications"; ddl.Items.Add(wrong); ddl.SelectedValue = wrong.Value; ddl.EnableViewState = true; } catch (Exception ex) { System.Diagnostics.Debug.Write(ex); } }
et ainsi dans à chaque fois que je lie une ddl à une donnée j'utitlise :
DDL_Helper(ma_ddl,la_valeur_à_binder);
Hors, ceci fonctionne avec intermittences parfois l'exception est gérer parfois non. Donc j'ai essayé pour contourner le probleme de surcharger la methode de rendu du controle mais rien y fait.
Code:
public class DropDownList : System.Web.UI.WebControls.DropDownList { protected override void PerformDataBinding(IEnumerable dataSource) { try { base.PerformDataBinding(dataSource); } catch (Exception) { this.ClearSelection(); this.EnableViewState = false; ListItem wrong = new ListItem("Indéterminable", string.Empty); this.ToolTip = this.ToolTip + "\n la valeur étant non conforme, vous devez la renseigner pour pouvoir enregister les modifications"; this.Items.Add(wrong); this.SelectedValue = wrong.Value; this.EnableViewState = true; } } protected override void OnDataBinding(EventArgs e) { try { base.OnDataBinding(e); } catch (Exception) { this.ClearSelection(); this.EnableViewState = false; ListItem wrong = new ListItem("Indéterminable", string.Empty); this.ToolTip = this.ToolTip + "\n la valeur étant non conforme, vous devez la renseigner pour pouvoir enregister les modifications"; this.Items.Add(wrong); this.SelectedValue = wrong.Value; this.EnableViewState = true; } } }
Quelqu'un pourrait il me donner la bonne méthode pour gérer cette exception à coup sur, merci d'avance.
Message édité par bleuerouge le 13-09-2006 à 09:58:56