Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Variabili di stato...eventi di reload form...questi sconosciuti....
venerdì 18 febbraio 2005 - 14.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 14:22
Salve a tutti...io ho un form di rilevazione dei tasti inseriti da un utente...per mezzo di un campo nascosto mi memorizzo il carattere inserito (che corrisponde ad un'azione che l'utente intende compiere)...però non capisco una cosa...avendo messo nell'evento PAGE_LOAD(...) le chiamate alle varie sub ho notato che mi fa 3 caricamenti della pagina prima di aspettare un nuovo input...e ovviamente al primo caricamento non trovando nessun dato nel campo nascosto, non mi fa le operazioni(e fin qui tutto ok)...al secondo ricarico si legge i valori inseriti(e fin qui tutto ok), ma al terzo ricarica i valori nulli dell'inizio, resettandomi allo stato iniziale la form e lasciandomi a bocca asciutta...
C'è qualcuno che sa come posso fare per ovviare ad un problema del genere??Spero di essermi spiegato abbastanza bene...
Aggiungo che ho provato colla variabile di stato viewstate(".."), e posto il fatto che l'abbia adoperata bene, non mi memorizzava i valori nemmeno un colpo...con la variabile di sessione session("..") è andata meglio...però al terzo ricarico ritorna tutto come prima....come fare?
Spero che qualcuno risponda...sinceramente sono disperato...
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
ven 18 feb 2005 - 14:37
Non è molto chiaro, comunque ti posso forse dare due dritte:
1) se i valori che memorizzi si riferiscono a WebControls, questi hanno già per default la ViewState attivata, quindi non serve risalvare tali valori nelle ViewState;
2) il fatto che la pagina in un certo senso si annulli può voler dire che nella Page_Load non hai considerato il Page.IsPostBack
più chiaramete, nella load della pagina devi inserire:
Page_load(...)
{
if (!Page.IsPostBack)
{
//inserisci qui il codice che vuoi sia eseguito solo la prima volta che carichi la pagina
}
else
{
//inserisci il codice che vuoi venga eseguito ad ogni evento sulla pagina
}
}
Spero di aver centrato il problema, altrimenti cerca di spiegare meglio il problema..
ciao
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 15:35
Ti ringrazio della risposta...però ahimè ho tralasciato di dire che avevo già provato anche inquel modo, testando la proprietà ispostback della pagina....il fatto è che se faccio come mi hai detto tu, al primo carico pagina si prende valori nulli, e poi ai successivi inserimenti di caratteri mi dà sempre valori nulli nel campo nascosto...non so se mi sono spiegato...a uesto punto ho provato in un altro modo...ovvero:
sub page_load(..)
if page.ispostback XOR (not bTest ) then
bTest=false
'codice da esegure
end sub
dove bTest la prima volta ha valore true e quindi non entra...la seconda ispostback è true e bTest è not (true) e quindi con lo XOR entra e imposta bTest a false ed esegue le istruzioni....al terzo ricarico mi resetta i valori e non me li ritrovo +....scusa se prima non sono stato sufficientemente chiaro.
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
ven 18 feb 2005 - 15:49
scusami, ma continuo a non inquadrare bene il problema....
che cosa intendi ad esempio con rilevazione dei tasti inseriti?!?
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 16:06
Con una funzione javascript che poi integro nel codice vb.net, rilevo l'evento onkeypress e il relativo codice del tasto premuto che poi mando in input ad un'altra funzione che mi processa le varie casistiche di tasti premuti...e si passa sempre ovviamente dalla PAGE_LOAD(..)
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
ven 18 feb 2005 - 16:27
quindi se ho capito bene, tu forzi da vb (o js) il postback (submit()) ad ogni pressione di tasto...
Io farei così:
Page_load(...)
{
if (!Page.IsPostBack)
{
//inserisci qui il codice che vuoi sia eseguito solo la prima volta che carichi la pagina
}
}
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
ven 18 feb 2005 - 16:32
Ho fatto un casino... ho postato per sbaglio..
quindi se ho capito bene, tu forzi da vb (o js) il postback (submit()) ad ogni pressione di tasto...
Io farei così:
Page_load(...)
{
if (!Page.IsPostBack)
{
//inserisci qui il codice che vuoi sia eseguito solo la prima volta che carichi la pagina
if ( tuaHidden.value!= "")
{
//l'utente ha inserito qualcosa. Eventualmente ti salvi nella Session il valore per capire, al prossimo inserimento, se aveva
//inserito altri valori. Non puoi salvarla nella ViewState perchè perdi il contenuto ad ogni submit() forzato da js o vb
}
}
}
se continuo a non capire, forse è meglio se incolli qualche spezzone di codice :)
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 16:59
Il fatto che mi hai detto che ad ogni submit forzato da js o vb si perde il contenuto della viewstate mi sfuggiva e ti ringrazio per avermi dato questa dritta....però il discorso che ti facevo era che non so perchè mi faccia un carico di pagina per 3 volte ....al primo caricco pagina se faccio if not page.ispostback...ecc.ecc. lui si prende i valori nulli del primo carico pagina....e quando ritorno ad inserirli non mi entra+ nell'if...se inverto il test, al primo giro nn fanulla...al secondo mi ricarica la pagina e mi carica i valori giusti e al terzo(da come l'ho scritto io non dovrebbe entrare nell'if, eppure eentra lo stesso) mi sporca ancora le mie belle variabili con valori nulli..cmq ora provo col tuo meTodo....semmai ti posto il mio
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 17:17
Allora....ho provato col tuo dimostrativo...e come sospettavo con "if not page.ispostback" memorizza un valore nullo nella hiddenbox....se inverto il test mettendo "if page.ispostback" allora memorizza...però....che strano....ora devo vedere se si comporta come prima....
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 17:27
Niente...mi resetta ancora il form :-(
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
ven 18 feb 2005 - 17:33
prova a postare del codice, forse è meglio. (non utilizzi MSN?)
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
ven 18 feb 2005 - 17:39
MSN non ce l'ho sul lavoro(sai motivi di privacy)...se vuoi ti posto il ccodice qui....è sufficiente il codice relativo alla page_load?
FrancescoGuadagno
Profilo
| Senior Member
224
messaggi | Data Invio:
lun 21 feb 2005 - 09:30
sarebbero più utili i duepezzi:
1)page_load
2) js o vbscript
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
lun 21 feb 2005 - 11:52
Ecco qui
public sub page_load(sender as object, e as eventargs)
'if not page.ispostback then
'if page.ispostback then
'msgbox("prova1 is " & prova1.value)
'prova1.value=request("prova1")
'msgbox("prova1 is " & prova1.value)
if page.ispostback xor (not bTest) then
bTest=false
if prova1.value <> "" then
Session("myChar")=prova1.value
Session("SelOperatore")=SelOperatore.text
SelOperatore.Attributes.add("onkeypress","keyhandler;")
msgbox("pageload mychar is " & session("myChar") & " selOperatore is " & session("SelOperatore"))
'menu.attributes.add("onkeypress","Form_Keyup(Session('myChar'),Session('SelOperatore'),)")
Form_Keyup(Session("myChar"),Session("SelOperatore"),)
'VisualizzaOperatore(Session("SelOperatore"))
'ControlloAbilitazioni(val(Session("SelOperatore")))
end if
end if
end sub
<script language="JavaScript"><!--
// if (document.layers) document.captureEvents(Event.KEYPRESS); // needed if you wish to cancel the key
document.onkeypress = keyhandler;
function keyhandler(e) {
if (document.layers)
Key = e.which;
else
Key = window.event.keyCode;
keychar = String.fromCharCode(Key);
if (Key != 0){
if (Key != 13)
alert("Key pressed! ASCII-value: " + Key + " " + keychar);
else{
alert("Hai premuto INVIO.." + Key + " " + keychar);
//alert("carattere passato a Form_Keyup(" & Keychar & ")");
}
//alert(keychar);
//alert(key);
//document.menu.prova.value=keychar;
//alert("document1 is " + document.menu.prova.text);
document.menu.prova1.value=keychar;
//alert("document2 is " + document.menu.prova1.value);
//document._ctl0.prova2.value=keychar;
//alert("document3 is " + document._ctl0.prova2.value);
keyhandler=keychar;
}}
--></script>
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
lun 21 feb 2005 - 15:43
Penso cmq di aver quasi risolto,....ora dovrei fare in modo che al primo load pagina, la suddetta abbia valori nulli....
BELENOS
Profilo
| Junior Member
116
messaggi | Data Invio:
gio 10 mar 2005 - 17:19
Tutto risolto :-)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !