in

dotNet Umbria

Il primo User Group in Umbria sul mondo .Net
Latest post 02-21-2008 9:16 AM by eclisse. 3 replies.
Page 1 of 1 (4 items)
Sort Posts: Previous Next
  • 02-20-2008 5:05 PM

    Update panel e ajax gestione a runtime

    Ciao ho un problema su una pagina web

    ho creato una pagina a runtime con dei dati che provengono da db.

    Ora voglio inserire dei controlli ajax (in particolare l'update Panel) per far si che mi si aggiorni solo la sezione all'interno di tale pannello e non tutta la pagina.

    La difficoltà sta nel fatto che tutti i componenti della pg sono creati a run time e non so come fare ad associare l'evento clik di un bottone all'update panel.

    AChi sa come aiutarmi ?????

     

  • 02-20-2008 5:45 PM In reply to

    Re: Update panel e ajax gestione a runtime

    Ciao, non ho ben capito se l'update panel lo hai già nella pagina e vuoi aggiungere i controlli al suo interno..
    Se questo è lo scenario giusto, cioè una pagina che contiene un up, al cui interno hai per esempio un controllo PlaceHolder, il seguente codice fa quello che ti serve:

    Nel PageLoad (o in qualsiasi altro posto avvenga il caricamento dinamico dei controlli.. N.B.: per far si che gli eventi legati ai controlli dinamici siano gestiti, tali controlli vanno ricreati ad ogni caricamento della pagina, anche parziale, nell'evento OnInit possibilmente per questioni di "pipeline" ASP:NET, ma in questo caso può andarbene anche il Page_Load):

     

    Label lbl = new Label();
    lbl.ID = "lblMsg";
    lbl.Text = "Premi il bottone..";

    Button btn = new Button();
    btn.ID = "btnTest";
    btn.CommandArgument = "Ciao, sono dinamico";
    btn.Text = "Premi qui";

    // Lego all'evento click del bottone il metodo di gestione in modo dinamico

    btn.Command += new CommandEventHandler(btn_Command);

    // Inserisco i controlli dinamicamente nel placeholder contenuto nell’update panel

    PlaceHolder1.Controls.Add(btn);
    PlaceHolder1.Controls.Add(lbl);
     

    A questo punto non resta che aggiungere il codice per il gestore d'evento che verrà chiamato al click del bottone, il quale essendo all'interno di un Update Panel non provocherà il postback della pagina ma l'aggiornamento del solo contenuto dell'Update Panel..

     

    void btn_Command(object sender, CommandEventArgs e)
    {
      // Recuper il riferimento alla Label caricata dinamicamente nel PlaceHolder

      Label lbl = PlaceHolder1.FindControl("lblMsg") as Label;
      if (lbl != null)
        lbl.Text = e.CommandArgument.ToString();

    }

    Ciao

    Fabrizio Bernabei   
    www.kitendo.com
    www.innovactive.it

  • 02-20-2008 5:52 PM In reply to

    Re: Update panel e ajax gestione a runtime

    Un'altetrnativa potrebbe essere di dichiarare il trigger direttamente da codice con una cosa di questo genere:

     

    Control control = new Control();UpdatePanelControlTrigger trig = new PostBackTrigger();

    trig.ControlID = control.UniqueID;

    upPanel.Triggers.Add(trig);

     

    Ciao,

    Andrea

    Andrea Cruciani

  • 02-21-2008 9:16 AM In reply to

    Re: Update panel e ajax gestione a runtime

    forse la prima solozuione mi sembra + fattibile in quanto tutti i miei controlli sono creati a runtime e quindi li dovrei aggiungere al pannello altrimenti, credo, sarebbe inutiulemettere l'up.

     

    Ora provo ....

     

    Grazie mille

Page 1 of 1 (4 items)
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems