19 messaggi dal 17 febbraio 2013
Ciao a tutti,

ho una pagina nella quale ho sia un AdRotator per mostrare dei banner:
<asp:ScriptManager ID="SM_Banner" runat="server" />
    <asp:Timer ID="Timer_Banner" Interval="5000" runat="server" />
    <asp:UpdatePanel ID="UP_Banner" runat="server">
      <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer_Banner" EventName="Tick" />
      </Triggers>
      <ContentTemplate>
        <asp:AdRotator ID="ADR_Banner" runat="server" Target="_blank" DataSourceID="DS_Banner" AlternateTextField="TITOLO" ImageUrlField="IMGURL" NavigateUrlField="LINK" />
      </ContentTemplate>
    </asp:UpdatePanel>



che un controllo MsCaptcha per la validazione di un form:
<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="rsv" %>

......


<rsv:CaptchaControl ID="captcha1" runat="server" CaptchaChars="ABCDEFGHIJKLMNPQRSTUVWXYZ123456789!?$%" CaptchaLength="5" CaptchaHeight="40" CaptchaWidth="150"
                                            CaptchaMaxTimeout="240" CaptchaMinTimeout="5" ToolTip="Codice di sicurezza" />



Nelle pagine in cui NON ho l'AdRotator, la validazione del captcha funziona.
Nella pagina con l'AdRotator la validazione del captcha fallisce sempre; questo a casua del AdRotator ed al suo asp:AsyncPostBackTrigger che, seppur non refresha a video la pagina, genera un postback e di conseguenza il ricalcolo del codice captcha (che a video è rimasto quello inziale, ma in realtà è cambiato)

Avete suggerimenti su come aggirare il problema?
Grazie!


EDIT: intanto sto provando a risolvere implementando una gestione banner con javascript, ma volevo capire se c'è un modo per aggirare il problema esposto :)
Modificato da Yield79 il 15 aprile 2015 11.03 -
Modificato da Yield79 il 28 aprile 2015 17.11 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

Yield79 ha scritto:

intanto sto provando a risolvere implementando una gestione banner con javascript,

Sì, penso che sia una soluzione migliore.
Ricorda che usando un UpdatePanel, anche se il postback è parziale, al server vengono comunque inviati i valori di tutti i campi input, compreso il viewstate, che potrebbe essere di dimensioni considerevoli, in base alla complessità della pagina. E tutto ciò solo per aggiornare l'immagine di un banner, che non rappresenta il contenuto principale della pagina.

Yield79 ha scritto:

ma volevo capire se c'è un modo per aggirare il problema esposto

Sì, potresti spostare l'AdRotator in una pagina aspx a sé stante, che contenga solo quel controllo e nessun altro elemento grafico. Poi includila nella pagina principale usando un iframe. In quel modo, l'ad rotator potrà aggiornarsi in maniera completamente indipendente. Puoi anche non usare più un UpdatePanel, a quel punto. Ti basterà aggiornare l'intera pagina (che tanto contiene giusto l'AdRotator) usando questo meta tag.
<!-- Refresh automatico ogni 30 secondi -->
<meta http-equiv="refresh" content="30">


ciao,
Moreno
Modificato da BrightSoul il 18 aprile 2015 22.23 -

Enjoy learning and just keep making
19 messaggi dal 17 febbraio 2013
Ciao, prima di tutto grazie per l'attenzione :)

Allora, sul sito che sto gestendo ho risolto come detto, usando javascript per il banner ed eliminando quindi l'updatepanel.

Ma provo a girare il problema da un altro punto di vista...

Voglio fare un piccolo gestionale web, nel quale sono presenti numerosi Update Panel per aggiornare diversi contatori; solo in alcune pagine del gestionale, voglio usare un controllo captcha, per esempio per modificare la password, inviare un form di richiesta, ecc....
In questo caso non posso prescindere dagli updatepanel, ma allo stesso tempo devo fare un uso limitato del capctha.

Esiste un controllo captcha che NON aggiorni il proprio valore se non su eplicita richiesta, magari utilizzando una qualche variabile di sessione?

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.