29 messaggi dal 11 settembre 2005
Innanzitutto, ciao a tutti;

La domanda: è possibile da un particolar evento (generato da un linkbutton, button ecc) selezionare un qualsiasi UpdatePanel come target del postback?

Nella fattispecie, da un button inserito fuori da un update panel 'UpdatePanel1', posso fare in modo che non venga effettuato il postback totale della pagina ma solo l'aggiornamento dei controlli contenuti del 'UpdatePanel1'?

Sperando di non aver sparato un cavol... galattica vi saluto tutti!
TheSilentMan

Aldo: A volte dorme più lo sveglio che il dormiente
Giovanni: Ma che ... di proverbio è?!
Allora spero di aver capito la domanda:

Te hai 2 update panel esempio
e un button esterno e vuoi che al click del button venga aggiornato solo un'update panel?

Certo che si può con un trigger, selezioni l'update panel che ti interessa e intercetti l'evento che desideri.

Se ti serve un esempio vedo di aiutarti ok?
Fammi sapere se è questo quello che intendevi.
Ciao

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
29 messaggi dal 11 settembre 2005
Innanzitutto grazie!

Il postback parte da un Repeater 'RPinternal'... annidato in un'altro Repeater 'RPexternal'... contenuto nella form (in nessun updatepanel);

Clickando su un linkbutton contenuto nel 'RPinternal' si dovrebbe aggiornare un update panel 'UpdatePanel1' contenuto nella form.

Problema:
C'è una maniera di definire il Trigger da codice, anzichè usando la scheda proprietà di VS2008 dell'UpdatePanel?
Dalla scheda 'proprietà' riesco a raggiungere il 'RPexternal' ma non il 'RPinternal'.

Aldo: A volte dorme più lo sveglio che il dormiente
Giovanni: Ma che ... di proverbio è?!
Leggi qui:

http://www.aspitalia.com/script/797/ATLAS-Aggiornamento-Parte-Pagina-Control-UpdatePanel.aspx

Ciauz

imperugo
Microsoft MVP
myblog : http://www.tostring.it
Un esempio è questo:


AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            

trigger.ControlID = "btn";


trigger.EventName = "Click";


pnlMain.Triggers.Add(trigger);

Ciao

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
29 messaggi dal 11 settembre 2005
maltra ha scritto:
Un esempio è questo:

AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = "btn";
trigger.EventName = "Click";
pnlMain.Triggers.Add(trigger);

Ciao


Niente... anche facendo:
// cicla nel repeater esterno:
protected void RP_REPEATER_ItemDataBound(object source, RepeaterItemEventArgs e)
{
...

// fa riferimento al repeater interno:
Repeater asprepeater = e.Item.FindControl("RP_DETAILS") as Repeater;        
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = asprepeater.ID;
trigger.EventName = "EDIT";
UpdatePanel1.Triggers.Add(trigger);
...
}


L'errore è sempre lo stesso:
A control with ID 'RP_DETAILS' could not be found for the trigger in UpdatePanel 'UpdatePanel1'.


Aldo: A volte dorme più lo sveglio che il dormiente
Giovanni: Ma che ... di proverbio è?!
Metti i controlli runatserver?

<asp:Button ID="Button1" runtat="server" onPreRender="addTrigger_PreRender" />
Code Behind protected void addTrigger_PreRender(object sender, EventArgs e) 
{ 

Button btn = sender as Button; 
//non necessario soluzione non corretta
ScriptManager manager = (ScriptManager)Master.FindControl("ScriptManager1"); 
manager.RegisterPostBackControl(btn)


ScriptManager1.RegisterPostBackControl(btn)

ScriptManager1.RegisterAsyncPostBackControl(btn) 
}


Il codice postato non è stato provato o verificato
Nemmeno cosi?
Modificato da maltra il 18 settembre 2008 13.23 -

Corso SEO DeepSEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Occhio che qui c'è qualcosa che non va!

Primo dalla riga tu stai cercando di recuperare il repeater e assegnarlo come trigger, casomai dovresti salire di livello per recuperare il repeater.
Btw, cerchi di assegnare l'evento edit di un repeater al trigger, solo che il repeater non ha l'evento edit.

Forse devi fare una roba del genere:

Button btn= e.Item.FindControl("TuoBottone") as Button;
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btn.ID;
trigger.EventName = "Click";
UpdatePanel1.Triggers.Add(trigger);

Ciauz

imperugo
Microsoft MVP
myblog : http://www.tostring.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.