PDA

View Full Version : ASP .NET Problema Timer su Master Page


luxe
23-07-2009, 22:45
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?

luxe
24-07-2009, 11:15
calma calma....uno alla volta !

luxe
27-07-2009, 11:18
....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

luxe
28-07-2009, 13:27
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...

luxe
29-07-2009, 08:50
Se vuoi usare questo sistema puoi utilizzare il getElementsByName assegnando un opportuno name al TextBox...

...niente da fare.....nn c'e' verso !:muro:

luxe
04-08-2009, 23:58
sigh !

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%>')