UserControl ajouté dynamiquement et evennement

UserControl ajouté dynamiquement et evennement - C#/.NET managed - Programmation

Marsh Posté le 07-05-2008 à 10:24:57    

Bonjour,
 
J'essaye d'ajouter un UserControl dynamiquement ce UserControl contenant principalement un boutton pour ajouter une autre instance de mon UserControl.  
Dans ma page les UserControl instanciés dans le Page_Load ont leur boutton qui fonctionne ccorrectement mais les usercontrol instancié dans l'évennement click doivent d'abord avoir un post back avant de fonctionner...
 
Voici mon code:
 
Ma page:

Code :
  1. public partial class _Default : System.Web.UI.Page
  2.     {
  3.         private int NumberOfFilters
  4.         {
  5.             get
  6.             {
  7.                 return (int)Session["NumberOfFilters"];
  8.             }
  9.             set
  10.             {
  11.                 Session["NumberOfFilters"] = value;
  12.             }
  13.         }
  14.         protected void Page_Init(object sender, EventArgs e)
  15.         {
  16.             if (!IsPostBack)
  17.             {
  18.                 NumberOfFilters = 1;
  19.             }
  20.         }
  21.         private void Page_Load(object sender, System.EventArgs e)
  22.         {
  23.             RecreatePersistedControls();
  24.         }
  25.         private void RecreatePersistedControls()
  26.         {
  27.             // Call CreateControl for each persisted control
  28.             for (int i = 0; i < NumberOfFilters; i++)
  29.             {
  30.                 CreateControl(i.ToString());
  31.             }
  32.         }
  33.         private void CreateControl(string id)
  34.         {
  35.             // Create controll with specified id,  
  36.             // add it to controls collection, attach event handlers
  37.             WebUserControl1 filter = (WebUserControl1)LoadControl("WebUserControl1.ascx" );
  38.             filter.ID = "filter" + id;
  39.             filter.AddEvent += AddMailingListFilter;
  40.             Panel1.Controls.Add(filter);
  41.             Button b = new Button();
  42.             b.Click += AddMailingListFilter;
  43.             Panel1.Controls.Add(b);
  44.         }
  45.         protected void AddMailingListFilter(object sender, EventArgs e)
  46.         {
  47.             NumberOfFilters++;
  48.             CreateControl(NumberOfFilters.ToString());           
  49.         }
  50.     }


 
Mon UserControl:

Code :
  1. public partial class WebUserControl1 : System.Web.UI.UserControl
  2.     {
  3.         public event EventHandler AddEvent;
  4.         protected void Page_Init(object sender, EventArgs e)
  5.         {
  6.             ImageButtonAdd.Click += ImageButtonAdd_Click;
  7.         }
  8.         protected void ImageButtonAdd_Click(object sender, EventArgs e)
  9.         {
  10.             if (AddEvent != null)
  11.             {
  12.                 AddEvent(this, EventArgs.Empty);
  13.             }
  14.         }
  15.     }


 
D'avance merci!

Reply

Marsh Posté le 07-05-2008 à 10:24:57   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed