Avatar billede bongii Nybegynder
19. oktober 2009 - 10:44 Der er 10 kommentarer og
1 løsning

Text box navne laves om..

Jeg har mit vs2008 c# projekt.

<asp:TextBox ID="navn" name="navn" runat="server" Width="200px"></asp:TextBox>

Når jeg ser koden for formularen, hedder form feltet:
<input name="ctl00$ContentPlaceHolder1$navn" type="text" value="784512 678678" id="ctl00_ContentPlaceHolder1_navn" name="navn" style="width:200px;" />

Hvorfor tager den ctl00$ContentPlaceHolder1$ med i ID og Navn?

Det betyder jo at jeg skal kalde formfeltet således:
string Name = Request.Form["ctl00$ContentPlaceHolder1$navn"];
Avatar billede kalp Novice
19. oktober 2009 - 11:24 #1
Fordi man ellers risikere og have elementer med samme id.
Du bruger enten et masterpage  eller usercontrol og der vil du få det mønster der.

Du kan forestille dig at jeg sender dig min hjemmelavede usercontrol.. og jeg har også valgt og kalde mit felt for "navn" - ja så kan du vel godt se at .NET vil undre sig over hvilken en du vil have fat i:)


Nu skal du ikke skrive Request.Form.. du skal skrive

string Name = navn.Text;
Avatar billede bongii Nybegynder
19. oktober 2009 - 12:00 #2
ahh ok...

Det er bare ikke særlig pæn kode .net generere, det kan man ikke undgå?

F.eks:
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBgK3/8zgCAKTitK2BAKX+K6hAgLypo6fAwL6iIeHCgK9vIn8DEZhyQZL7keOCK+g/olBzKwQmoX2" />


og hvis man bruger requiredfield validator, bliver der inkluderet en masse javascript osv...
Avatar billede bongii Nybegynder
19. oktober 2009 - 12:16 #3
Som jeg ser det, er der 2 måder.

1:
<textarea name="besked" cols="20" rows="10" style="height:100px; width:300px"></textarea>

Kaldes med string Besked = Request.Form["besked"];


2:
<asp:TextBox ID="email" runat="server" style="Width:300px"></asp:TextBox>
Kaldes med string Email    = email.Text;

Nummer 1 ser helt normalt ud hvis man viser kildekoden, Nummer 2 bliver laget om af .net.

Jeg kan ikke lige gennemskue om jeg bør bruge Måde 1 eller 2..?
Avatar billede kalp Novice
19. oktober 2009 - 12:22 #4
Du bør bruge metode 2 som er .NET metoden:)
Der er situation hvor man stadig benytter sig af Request, men der hvor du har direkte adgang til dine kontroller bør du kalde .Text på dem.

Angående kodeslam, så afhænger det af hvad du slå til og fra hvor meget .NET vil generere af det:)
Avatar billede bongii Nybegynder
19. oktober 2009 - 12:31 #5
ok takker.
Men kan jeg lave denne om til et text area?
<asp:TextBox ID="email" runat="server" style="Width:300px"></asp:TextBox>
Avatar billede kalp Novice
19. oktober 2009 - 12:52 #6
tilføj attributten:

TextMode="MultiLine"
Avatar billede sirius Nybegynder
19. oktober 2009 - 12:54 #7
TextMode="MultiLine"
så bliver det til Textarea

f.eks.
<asp:TextBox id="TextBox1" TextMode="MultiLine" runat="server"></asp:TextBox>
Avatar billede keysersoze Guru
19. oktober 2009 - 13:43 #8
En af fordelene ved webforms er viewstaten og en af ulemperne ved webforms er viewstaten - det er nemlig meget den, sammen med den meget auto-genererede kode fra .net-kontrollerne, der "ødelægger" de id'er, den pæne kode osv som du er vant til. Vil du have fuld kontrol over din kode skal du ikke benytte webforms men MVC.
Avatar billede bongii Nybegynder
19. oktober 2009 - 14:06 #9
Hvad er MVC ?
Tror ikke jeg kan leve med så "grim" kode..
Avatar billede keysersoze Guru
19. oktober 2009 - 14:41 #10
http://www.asp.net/mvc/ - en måde at udvikle på der på flere punkter nok minder mere om PHP og klassisk ASP end webforms. Men når det så er sagt så er MVC ikke nødvendigvis altid det rigtige at vælge - at lære og forstå webforms mener jeg stadig er nødvendigt da der, som med så meget i denne verden, er opgaver der passer meget bedre til det ene end til det andet så den grimme kode (som iøvrigt har været meget værre) skal du nok lære at leve med.
Avatar billede bongii Nybegynder
19. oktober 2009 - 15:08 #11
ok. Jeg må rode med MVC når jeg får 100% styr på webforms :) Takker.
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
Kurser inden for grundlæggende programmering

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