View Full Version : ASP .NET Problema Timer su Master Page
Salve ragazzi, ho un problema. Sto facendo un piccolo browser game e nella masterpage tramite una label (all'interno di un update panel) visualizzo l'orario del server scandito mediante un timer con aggiornamento a 1000ms. Il problema è che ora tutte le pagine dipendenti della master page, sono aggiornate da quel timer e nn c'e' verso di evitare questo fatto. Ho provato anche a mettere tutto il contenuto delle pagine all'interno di un update panel in modalita conditional ma niente.....
come posso fare?
calma calma....uno alla volta !
....no dai mi avete confuso le idee !:mad:
Grazie a tutti
^TiGeRShArK^
27-07-2009, 19:17
Devi mettere solo la label all'interno dell'update panel, ma comunque nelle varie pagine devi gestire il postback generato dal javascript.
Ti conviene creare una pagina base da cui estendono tutte che in caso di asynchronous postBack faccia immediatamente un return nel pageLoad..
Questa è la prima soluzione che mi viene in mente, ma potrebbe essercene anche qualche altra con meno impatto sul codebase...
se mi viene in mente altro ti faccio sapere. :p
EDIT: oppure puoi mettere questo controllo all'interno della master page, facendogli fare il return dopo l'aggiornamento della label, e *probabilmente* dovrebbe andare
Grazie, stavo valutando di NON usare timer asp.net, ma fare con javascript. All'inizio della sessione faccio una chiamata al server e mi faccio dare la data e ora, poi setto i nuovi dati con javascript e uso la funzione get.date ecc...
C'e' un problema per' con javascript nel momento in cui si usano pagine master asp.net.
se si punta un controllo da javascript, es. Textbox1 in una pagina normale, normalmente si fa:
es:
document.getElementById('TextBox1').value = timeValue;
...la stessa cosa purtroppo nn vale se abbiamo una pagina master infatti con
document.getElementById('TextBox1').value = timeValue; SI HA L'ERRORE : Errore: 'document.getElementById(...)' è nullo o non è un oggetto idem se si da tutto il percorso con il suffisso che asp.net assegna, e cioè:
document.getElementById('ctl00_TextBox1').value = timeValue;
Come posso fare?
^TiGeRShArK^
28-07-2009, 13:30
Se vuoi usare questo sistema puoi utilizzare il getElementsByName assegnando un opportuno name al TextBox...
Se vuoi usare questo sistema puoi utilizzare il getElementsByName assegnando un opportuno name al TextBox...
...niente da fare.....nn c'e' verso !:muro:
tomminno
05-08-2009, 00:19
Scusa ma perchè vuoi farti del male e far aggiornare ad un javascript un controllo lato server?
Comunque è strano che non funzioni la versione con il client id, sei sicuro che sia quello corretto?
Hai provato con:
document.getElementById('<%=TextBox1.ClientID%>')
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.