15. november 2004 - 15:51Der er
10 kommentarer og 1 løsning
Læsning af data indtastet i forms
Hej Alle!
Jeg har et problem!
Jeg har nogen variable som bliver læst fra en database og lagt ind i et objekt. Disse variable skal præsenteres for brugeren således at han kan gennemlæse disse og evt. rette i det der er forkert.
Strengene bliver læst ind i de forskellige tekstbokse på følgende måde:
Her opstår mit problem så..... emailen bliver tilsyneladende ikke ændret i objektet! Eller rettere teksten fra tekstboksen bliver ikke hentet ind i koden?
Ser ud til at du skal have en if Not page.ispostback (i vb) ind på siden. I denen skal du hente dine data. Hvis ikke bliver dataene hentet ind igen når du klikker på gem
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { //Her henter jeg objektet fra sessionen og ligger adressen ind i //textboxen "adresses", hvis det er første gang siden loades. enTest = (Temp)Session[Request.QueryString["sessionId"]]; adresses.Text = enTest.adresse; } }
private void LinkButton1_Click(object sender, System.EventArgs e) { //Her er det så meningen at adressen i objektet enTest, skal opdateres hvis //der bliver indtastet en ny adresse. Herefter skulle den ny adresse gerne //blive vist i textboxen, men alt hvad jeg får er en nullreference exception enTest.adresse = adresses.Text; } }
Men problemstillingen er altså at jeg ikke kan opdatere adressen i objektet. Den kan simpelthen ikke få fat i den nye tekst, der er indtastet i textboxen. Hvorfor?!?
din null-exception kommer i det eksempel du har sendt kommer nok ikke fra din text-box, men fra enTest. den initialiserer du første gang brugeren kommer ind på siden, men når der klikkes på knappen, gør du det ikke - og den vil derfor være null når eventhandleren køres.
Når adressen i enTest objektet er opdateret, skal enTest ligges ind i sessionen igen og desuden skal det hentes uden for if(!isPostBack). Underligt, jeg mente ellers at hvis man bare hentede referencen til etObjekt'et fra sessionen, ændrede man på selve dette objektes værdier, men det gør man åbenbart ikke?
// og så det samme i din page_load private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { enTest = (Temp)Session[Request.QueryString["sessionId"]]; adresses.Text = enTest.adresse; } }
// og i din handler : private void LinkButton1_Click(object sender, System.EventArgs e) { enTest.adresse = adresses.Text; }
hehe... det er bedre end at det er gået totalt i kage ;o)
Synes godt om
Ny brugerNybegynder
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.