Avatar billede Simon Praktikant
18. maj 2006 - 16:13 Der er 7 kommentarer og
1 løsning

Postback på textboxes i asp.net med java-script

En asp.net side skal vise status på et større anlæg. Da en sådan side kun er statisk, skal den refreshes jævnligt for at være up to date. Til dette formål har jeg fundet nedenstående java-script.

For ikke at miste indholdet at en række textboxes på min side har jeg sat AutoPostBack="True" for dem. Men så laver de en postback hver gang indholdet ændres.

Kan jeg ikke få javascriptet til at lave en postback for alle textboxene?

/********************************************

//enter refresh time in "minutes:seconds" Minutes should range from 0 to inifinity. Seconds should range from 0 to 59
var limit="0:15"

if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh(){
if (!document.images)
return
if (parselimit==1)
window.location.reload()
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+" minutes and "+cursec+" seconds left until page refresh!"
else
curtime=cursec+" seconds left until page refresh!"
window.status=curtime
setTimeout("beginrefresh()",1000)
}
}
Avatar billede snepnet Nybegynder
18. maj 2006 - 21:50 #1
AutoPostBack medfører at der laves et postback når du ændrer i tekstboksen - det er det der er meningen med det, og intet andet.
Hvad mener du med postback for alle tekstbokse? - i forbindelse med et postback, postes det hele tilbage til serveren... Det er ikke nødvendigt at gøre det for hver kontrol.
.... Hvad er det der er problemet i den løsning du har lavet?
Mvh
Avatar billede Simon Praktikant
19. maj 2006 - 09:51 #2
Problemet er at jeg egentlig synes at det er træls at der bliver lavet en postback hver gang der ændres i en tekstbox, fordi der er ret mange tekstboxe. Jeg ønsker kun en postback når ham der benytter siden trykker på en slags udfør-knap. Samtidig ønsker jeg også at han bliver underrettet om anlægets aktuelle status. Anlægets status kan ændres flere gange i minuttet, og det får han kun at vide hvis han manuelt trykker update. Så her ønsker jeg at siden selv auto-refresher f.eks hvert 15 sekund. Men så er problemet bare at indholdet af textboxene går tabt.
Avatar billede snepnet Nybegynder
19. maj 2006 - 18:45 #3
Hvis du vil gemme noget data brugeren har indtastet - må du lade siden udføre et postback.
Hvis du vil have det til at ske med et givent interval - kan du benytte den kode du har, og så i stedet for at kalde reload, kan du udføre et postback istedet.
(og så slette AutoPostback="true" på dine tekstbokse).
Mvh
Avatar billede Simon Praktikant
19. maj 2006 - 21:33 #4
Vil det sige at java-scriptet skal lave en postback i stedet for en reload? Nu er jeg ikke en haj til java-script, men så skal "window.location.reload()" vel bare skiftes ud med noget andet? og hvad?
Avatar billede snepnet Nybegynder
19. maj 2006 - 23:11 #5
Jeps - det vil det sige, og den rigtigste måde at få fat i "postback-kaldet" er at få det fra siden selv ( this.ClientScript.GetPostBackEventReference(...); ), hvilket medfører at du f.eks. kan udskifte window.location.reload() med:
<%= ClientScript.GetPostBackEventReference(this, "whatever") %>
Det giver dig så et helt almindeligt postback... Hvis det skal være silent (altså uden klik og blink) kan du - hvis du benytter asp.net 2.0 bruge callbacks, og ellers lave en løsning baseret direkte på xmlhttp.
Mvh
Avatar billede snepnet Nybegynder
19. maj 2006 - 23:12 #6
Det sidste kan du se et eksempel på her:
http://www.eksperten.dk/spm/681658
Mvh
Avatar billede Simon Praktikant
16. august 2006 - 16:04 #7
tak for hjælpen. Smid svar og point er dine
Avatar billede snepnet Nybegynder
16. august 2006 - 18:08 #8
Kommer her :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester