Avatar billede m_k_l Nybegynder
28. juli 2003 - 13:34 Der er 34 kommentarer og
1 løsning

Læse indhold af datagrid og herefter reload

Hej,

Jeg har en side hvor brugerne kan skrive noget i en tekstbox. Men da siden reloades med mellemrum, for at opdatere informationerne på siden, vil det ikke være særlig hensigtsmæssigt at reloade siden og dermed slette brugerens indtastninger inden disse er gemt.
Det er derfor nødvendigt at hente informationer ud af tekstboxen (som findes i et datagrid), og lade dem afgøre om siden må reloades.

Men hvordan H..... gøres det ???
Avatar billede repsak Nybegynder
28. juli 2003 - 13:40 #1
Kan ikke helt på det du fortæller afgøre om du skal bruge Sessioner eller Viewstate. Kan du ikke forklare lidt nærmere? :-)
Avatar billede m_k_l Nybegynder
28. juli 2003 - 13:46 #2
Har et datagrid med nogle informationer fra en database. Disse informationer ændres løbende, hvorfor det er nødvendigt at opdatere web siden, for at have et tidssvarende billede af databasen.
I mit datagrid skal der ligeledes være en textbox, hvor brugen kan skrive en kommentar til hver enkelt linie i mit datagrid, og gemme denne ved tryk på en knap.
Her kommer problemet ind i billedet, hvis siden opdateres mens bruger er ved at skrive, og altså inden teksten er gemt slettes denne. Men hvordan kan jeg vide om der står noget i textboxen ???
Avatar billede repsak Nybegynder
28. juli 2003 - 14:19 #3
ok - uden at kende dit program nærmere så vil jeg mene at du i din preRender metode skal smide indholdet af din(e) textbox ind i sessions, og så i din page_load gøre det modsatte (altså smide sessions til textboxe)
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:26 #4
Det med page_load er jeg med på, men hvor kommer preRender fra ???
Jeg kan vel ikke tilgå den i "code-behind", der har jeg vel allerede "tabt" mine data i textboxene ???
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:35 #5
Så har jeg fundet det sidste preRender event.....
Avatar billede repsak Nybegynder
28. juli 2003 - 14:37 #6
jo prerender kan du bare skrive i din codebehind
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:48 #7
Så vidt jeg kan se opstår eventet preRender før siden genereres, og efter page_load. Det jeg har brug for er et event/metode der giver mig mulighed for at gemme data fra mit datagrid.
Avatar billede repsak Nybegynder
28. juli 2003 - 14:51 #8
hvornår opdaterer du din side og datagridet?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:56 #9
Som det er nu, kalder jeg en side med et datagrid hver gang jeg ønsker at opdatere. Denne side sørger så for at hente data fra databasen og smide dem i datagridet. Det virker sådan set OK,(benytter smartNavigation=true så det ikke blinker).
Hvis det ikke kan gøres sådan, eller der er andre og mere smarte metoder vil jeg meget gerne høre nærmere.....
Avatar billede repsak Nybegynder
28. juli 2003 - 14:58 #10
"Som det er nu, kalder jeg en side med et datagrid hver gang jeg ønsker at opdatere" - hvornår ønsker du det. Hvad afgør hvornår der skal opdateres?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:59 #11
preRender foregår vel på serveren, er det ikke nødvendigt at lave et eller andet på clienten, for at gemme indholdet af textboxene ???
og i så fald, hvordan kan jeg så få fat i mine textboxe når de ligger inde i et datagrid ???
Avatar billede m_k_l Nybegynder
28. juli 2003 - 14:59 #12
Det var meningen at siden skulle opdateres f.eks hver 10 sek. Dvs. det er en tiemr der afgør det.
Avatar billede repsak Nybegynder
28. juli 2003 - 15:04 #13
hmm for nu at tage problemet fra en anden vilkel. Har du sat EnableViewState = true?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:05 #14
jeps :-)
Avatar billede repsak Nybegynder
28. juli 2003 - 15:06 #15
både til din page og på textboxen?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:11 #16
datagrid og textbox.    .....og nu er det også sat på page :-)

Hvad gør EnableViewState egentlig ???
Avatar billede repsak Nybegynder
28. juli 2003 - 15:16 #18
virker det siden jeg har fået points?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:17 #19
Det burde vel egentlig være nok at gemme teksten i tekstboksen ved hjælp af OnTextChanged="OnTextChangeMethod" og så sætte den ind igen ved hjælp af page_load ???
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:17 #20
har ikke fundet løsningen endnu.....men du har gidet gøre en indsats....
Avatar billede repsak Nybegynder
28. juli 2003 - 15:20 #21
Så vidt jeg husker så aktiveres OnTextChanged først når du har skrevet en text og så fjerner focus fra textboxen. Ellers ville der jo ske uendelige mange postbacks hvis du skulle skrive 'hej mormor og morfar nu skal I bare høre blablabla..." forstå min pointe :-)
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:20 #22
ovenstående referere til <asp:TextBox Runat="server" ID="Textbox1" OnTextChanged="OnTextChangeMethod" />.....
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:22 #23
jeps, men så vidt jeg ved behandles eventet først ved næste postback..... er det ikke korrekt ???
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:24 #24
ahhh, nu ser jeg hvad du mener - min fejl, overså lige "fjerner focus" Du har nok ret, tror heller ikke det virker.... :-(
Avatar billede repsak Nybegynder
28. juli 2003 - 15:25 #25
Faktisk så tror jeg at det er noget rod at gemme et tegn LIGE efter at det er indtastet. Så skal du have en meget speciel grund. Jeg tror mere på teorien om at du skal gemme feltet(textboxs indhold) hvis det har focus lige inden du reloader dit datagrid - ved du hvor jeg vil hen?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:30 #26
jeps, men hvordan kan jeg "fange" det øjeblik lige inden jeg reloader, og stadig finde indholdet af tekstboksene ???
Avatar billede quaser Nybegynder
28. juli 2003 - 15:31 #27
Hvordan laver du lige den reload af siden?
Kalder den helt forfra, eller laver en postback?

Hvis du laver en postback skulle det da være muligt at hive ud, hvor brugere var i datagriddet, inden din postback blev lavet.

Hvis den ikke laver en postback, må du have lavet noget clientside script der gør det for dig.
Du kan evt. også bare lave et clientside script der tjekker om du er ved at skrive noget, hvis man ikke er laver den bare en reload, og ellers spørger den om den må lave en.

En anden ting (uden at kende den konkrete sag i detaljer).
Jeg hader sidder der automatisk reloader.
Avatar billede repsak Nybegynder
28. juli 2003 - 15:35 #28
Kan du ikke 'fange' den der hvor du gerenerer din opdatering af siden... det der med hvert 10. sekund
Avatar billede m_k_l Nybegynder
28. juli 2003 - 15:38 #29
Jo, det må blive sådan noget.....indtil videre benytter jeg bare "Response.Write( "<meta http-equiv=\"Refresh\" content=\"5\">" );" i page_load, men jeg skal have lavet et script der klare opgaven ved et postback.....Nogen ideer til hvordan ??? :-)
Avatar billede repsak Nybegynder
28. juli 2003 - 15:53 #30
hmm jeg ville måske gribe opgaven lidt anderledes an. Dér hvor man kan putte data ind i databasen (eller slette dem) burde være stedet ellerr har jeg misforstået noget...?
Avatar billede m_k_l Nybegynder
28. juli 2003 - 16:04 #31
..burde være stedet.....til hvad ??? :-)
Avatar billede repsak Nybegynder
28. juli 2003 - 16:08 #32
stedet hvor du skal gemme din textbox's tilstand.
Avatar billede quaser Nybegynder
28. juli 2003 - 16:21 #33
når der bare bliver lavet en refresh kan han ikke gemme noget.

Han bliver nødt til at finde tilstanden og så lave en postback.

De data som brugere har skrevet ind skal vel blive ved med at være der, og ikke gemmes i databasen før brugeren aktiv trykker gem.

Jeg er dog bange for at det aldrig vil blive en pæn løsning, hvis vi nu siger at der bliver lavet en postback imens at brugere sidder og skriver vil han miste focus(kan man programmere sig fra) miste lidt af det der er skrevet (kan man ikke programmere sig fra).

Hvis du kan lave et clientside script der tjekker på om man har skrevet noget i en textbox som man har focus i, og så udsætte opdateringen hvis man har.
Når brugere så er færdig med at skrive, vil han trykke på gem, og så vil siden jo blive opdateret i den forbindelse.

Hvordan man så sætter sådan et clienside script til at blive udført efter 10 sec, ved jeg ikke.
Avatar billede m_k_l Nybegynder
28. juli 2003 - 16:21 #34
ahhh okies, så er jeg med igen. Troede du ville have timerskidtet til at ligge der...kunne ikke lige få det til at give mening :-)
Nope, det er en mulighed at gemme det der :-)
Avatar billede quaser Nybegynder
28. juli 2003 - 16:46 #35
Vær lige opmærksom på at der er 2 der svare på dit indlæg nu =P
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