Avatar billede fila Nybegynder
04. januar 2005 - 09:49 Der er 13 kommentarer og
1 løsning

Hmmm Hvorfor

hvordna virker runat="server" ??
Avatar billede ladyhawke Novice
04. januar 2005 - 09:53 #1
Det fremgår egentlig af tildelingen: det betyder at det der har attributten skal køres fra serveren. Det betyder bl.a. at du kan få fat i den fra din webapplikation på serveren, men også at det er en lille smule tungeren end en standard html kontrol der kun afvikles på klienten
Avatar billede fila Nybegynder
04. januar 2005 - 09:54 #2
hmm hvad hvis man skal køre den lokalt ? kan du ikke skrive et eksempel ? på forhånd Tak
Avatar billede fila Nybegynder
04. januar 2005 - 10:00 #3
Control 'ListBox1' of type 'ListBox' must be placed inside a form tag with runat=server.
Avatar billede fila Nybegynder
04. januar 2005 - 10:00 #4
det ovenstående er min fejlbeskrivelse
Avatar billede ladyhawke Novice
04. januar 2005 - 10:01 #5
hvis du kun vil køre på klienten, så et det da bare at undlade runat="server"... Men hvis du har brugt en ASP.NET server control, så er det et krav
Avatar billede fila Nybegynder
04. januar 2005 - 10:02 #6
Oki
Avatar billede ladyhawke Novice
04. januar 2005 - 10:04 #7
det er fordi (så vidt jeg lige kan tænke mig til) det er netop en ASP.NET server control... Du skal bruge en HTML control hvis du vil undgå det
Avatar billede ladyhawke Novice
04. januar 2005 - 10:05 #8
Du kan naturligvis mere med en ASP.NET control, men den koster lidt i downloadtid til gengæld. Sig til hvis der ellers er noget
Avatar billede trumf Nybegynder
04. januar 2005 - 10:42 #9
Både klient og server kontroller kører på klienten, men serverkontroller har viewstate, hvilket betyder at de har en variabel med frem og tilbage hver gang der gøres noget på applikationen. Viewstate er, som ladyhawke hun skriver, lidt tungere end en klient kontrol. Man bruger serverkontroller på en navneformular, hvor det er praktisk at kunne hente noget frem igen, som brugeren har indtastet, i tilfælde hvor der valideres på et felt.
Hvis der ikke skal valideres på formen, kan det betale sig at bruge klientkontroller.
Avatar billede basementjack Nybegynder
04. januar 2005 - 23:26 #10
Den fejlmelding betyder at du har placeret en asp-control eller en html-control med runat="server" som attribute _udenfor_ din form. Hvor din form er

...
Her skal ikke være runat="server"-ting
...
<form id="fooBar" runat="server">
...
  Her skal være runat="server"-ting
...
</form>
Avatar billede burningice Nybegynder
05. januar 2005 - 06:30 #11
trumf>> så hvis man bruger EnableViewstate=false, så mister man pludselig alle siner server-kontroller? Nej vel.

Selfølgelig er server-controller meget mere end viewstate, og man skal igen skelne mellem webcontrols og htmlcontrols. Fælles for dem alle er dog at de bliver oprettet som et object på serveren som man kan manipulere med på bedste OO-facon, og ikke via snørklede inline scripting m.m. som i asp eller php.
Avatar billede trumf Nybegynder
05. januar 2005 - 17:42 #12
cyberfessor>>
Hvis du mener det jeg skriver er forkert, så skal du vist læse op på din certificering - MCP i ASP.NET

Jeg synes du skal komme med en bedre forklaring i stedet for at flame fila's spm med nedladende bemærkninger til andre.

Ellers kan du oversætte dette (fra MS's bog til MCP i ASP.NET)

You can use server controls or HTML controls on a Web form. What’s the difference? Basically, server controls are a superset of HTML controls and offer the advantages described in Table 4-1.

Table 4-1. Server Controls vs. HTML Controls

Feature:

Server events
Server controls: Trigger control-specific events on the server.
HTML controls: Can trigger only page- level events on server (postback).

State management
Server controls: Data entered in a control is maintained across requests.
HTML controls: Data is not maintained; must be saved and restored using page-level scripts.

Adaptation
Server controls: Automatically detect browser and adapt display as appropriate.
HTML controls: No automatic adaptation; must detect browser in code or write for least common denominator.

Properties
Server controls: The Microsoft .NET Framework provides a set of properties for each control. Properties allow you to change the control’s appearance and behavior within server-side code.
HTML controls: HTML attributes only.

Og så skal man lige huske at mange valideringer laves bedre og hurtigere med JavaScript, men det står der selvfølgelig ikke noget om i MS's bog, da JS er SUN :-)
Avatar billede burningice Nybegynder
05. januar 2005 - 18:23 #13
trumf>> du fik det til at lyde som om at det som gjorde server-kontroller til server-kontroller var at de havde viewstate. Det er jo kun en del af det, og selvom man disabler viewstate er server-kontrollerne jo stadigvæk server-kontroller.

lidt sjov opdeling der forresten er i den bog. Oftest bliver alle tags med en runat="server" opfattet som server-kontroller, og de bliver så igen opdelt i Webcontrols og Htmlcontrols (på samme måde som de to namespaces i System.Web-assemblien). Og ud fra den definition er serverkontroller objekter på serveren der mapper til steder på html-siden hvor de forskellige tags er placeret. Man kan altså abstrahere fra selve layuoutet og manipulere med det uden at skulle rode direkte i html'en.

I bogen der bliver server controls rigtig nok brugt omkring tags med runat="server" på sig, men at de så bruger navnet html controls for dem der ikke har runat="server" kan virke forvirrende, da htmlcontrols jo også figurerer under System.Web.UI.HtmlControls.
Avatar billede burningice Nybegynder
05. januar 2005 - 18:24 #14
og ang. JS, så er det altså en Netscape-opfindelse.
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