Qu'il est rageant de travailler sur un WebControl et de constater que celui-ci ne fonctionne plus dès qu' un UpdatePanel est utilisé (que l'UpdatePanel soit dedans ou hors du WebContrl custom)... qui plus est quand ce control est destiné à SharePoint...
Alors plutôt que de blâmer le Framework .net ou de vouloir à tout pris dire que c'est un bug de SharePoint, il est préférable de prendre le souci à la base... et dans le cas d'un WebControl, la base est l'instant où nos contrôles enfants sont créés. Et c'est bien là qu'il ne faut pas se troumper, car ceux-ci doivent être instanciés lors de l'event OnLoad... et non pas, surtout pas dans le fameux CreateChildControls (c'est justement en utilisant cette méthode que notre contrl custom n'est pas compatible avec les UpdatePanel.
Voici donc un template à utiliser pour les Webcontrol utilisants l' UpdatePanel.
public class WebCustomControl1 : WebControl { #region Déclaration des variables private // TODO: Déclarer ici les controls utilisés. #endregion /// <summary> /// Chargement du control /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); // TODO: Instancier ici les contols enfant et le ajouter à la collection Controls. if(!this.Page.IsPostBack) { // TODO: Implémenter le code éventuellement destiné à charger des données. } } #region Méthodes et Events // TODO: Implémenter ici le code des events des controls. #endregion }