04. juli 2006 - 15:11Der er
12 kommentarer og 1 løsning
Design af sider
Hvordan designer man i .net, i 'gamle dage' med asp, brugte man jo så godt som altid tabeller ala. <table> <tr> <td>Kolonne 1</td> <td><input type="text" id="xx"></td> </tr> osv. i .net trækker man bare kontrollerne ind, eller bruger user-controller. Men hvordan placerer man det pænt, jeg har på nuværende allerede lavet en del i .net, men der har jeg brugt <table> strukturen til at placere felterne, men det kommer jo efterhånden til at se rodet ud og er ikke særlig dynamisk.
Jeg skal nu til at opgradere/omskrive en af mine løsninger til .net version 2.0, og så vil jeg selvfølgelig lave det så fleksibel som mulig ved hjælp af usercontroller m.m. Men hvordan gør jeg, er det noget med datagrid, gridview, multiview eller?
Du har ikke andre muligheder for placering i browseren fordi du bruger asp.net. div'er span'er og tabeller er hvad du har at gøre godt med - helt som vanligt. Mvh
Jeg ved godt at det i sidste ende altid vil ende op med div, span og table m.m. da det jo er de muligheder der er ang. html, men der må da være en bedre metode at placere elementer på end at man selv skal skrive table, tr, td.
Hvis man skal have data fra en database præsenteret i kolonner, bruger man jo f.eks et datagrid, sådan en koder man jo normal ikke i hånden, så for mig lyder det mærkelig at .net ikke er lavet sådan at man ikke behøver at skrive table, tr, td m.m.
Jeg kan selvfølgelig forstå på dig, at du bruger denne metode, men er der ikke andre der bruger en anden?
Layout for en side - og en specifik præsentationskontrol (som et datagrid/gridview) synes jeg ikke man sådan umiddelbart kan sammenligne.
Der er ikke f.eks. en layout kontrol udover hvad tabeller, div's mv. giver dig. Hvis du spørger til hvilke muligheder du har med visual studio, så kan du arbejde med absolut positionering så du kan placere dine kontroller på siden, og få vs til at indsætte style's der placerer dem i browseren (default i vs2003, men skal aktiveres i vs2005). Ellers skal du lave det manuelt (med designeren eller ved selv at skrive det... det kommer ud på ét). Hvis du trækker en tabel ind i designeren og arbejder med den der, skal du jo ikke skrive noget html selv, men det har ikke noget med .net at gøre som sådan... Det er en IDE-ting (Visual Studio / Visual Web Developer ol.).
Hvis du bruger version 2.0, kan du med fordel benytte masterpages - ikke at de giver dig en nemmere mulighed for at placere de enkelte elementer/kontroller, men du kan definere dit layout i en master.
Jeg er ikke helt med på hvad du synes der er mærkeligt ved det.... Kan du eventuelt komme med et mere konkret eksempel på hvad det er du ønsker at placere hvordan?
Det jeg vil placere, er alt mulig, dvs. tekstbokse, dropdown, radiobutton, listbox osv., og de skal jo så placeres sådan at de flugter med hinanden i flere rækker.
Og hvordan, det er det jeg spørger om, jeg kan sagtens få det pænt ved at bruge tabel struktur, men nu er det sådan at det site jeg skal lave hostes til mange forskellige kunder, og hver kunde har deres ønsker til hvordan siden skal se ud. Der er selvfølgelig mange felter der skal være der, men en vil f.eks have at der skal være en søgefelt nederst til højre andre vil ikke have et søgefelt. Nogle vil have en 4-5 dropdown hvor man kan vælge nogle specielle produkter osv. så dvs at som standard er der ca. 15 felter alle har, men nogle har så 20 felter andre måske 25.
Så summa summarum, så vil siden bestå af mange komponenter, som skal vises eller skjules afhængig af kunden (dvs. siden kaldes med parameter username=kundeXX, og ud fra det sættes felterne .visible = true eller false).
En side med så mange felter vil blive rodet at kigge på, hvis det bare bygges op med tabeller (sådan er den nuværende version bygget op), så det vil jeg ikke gøre. Det vil være noget med usercontroller til at gruppere felterne logisk, men hvordan jeg bygger controllerne op sådan design mæssig, for disse vil jo så indeholde nogle felter som skal stå pænt i forhold til hinanden, og hvordan jeg efterfølgende vil placere det hele på siden, det er det jeg er meget i tvivl om.
Er ovenstående til at forstå?
Andre er også meget velkommen til at kommentere det, så jeg kan få flere meninger om det.
Nej, jeg skal bruge noget ala. det jeg har beskrevet.
Er der slet ikke andre der vil kommentere mit indlæg, eller bruger i alle ligesom snepnet bare håndkodede tabeller, div m.m. altså stort set som man gjorde i alm. asp.
Jeg synes ikke det er gennemskueligt, hvorvidt det er en slags layout kontrol du er ude efter - eller nogle muligheder for at få genereret noget html-kode fra visual studio du er ude efter?
Jeg hælder til at det er en visual studio mulighed du er ude efter - idet at du betragter linket til layout-kontrollen som et fejlskud. Du kan som tidligere nævnt sætte visual studio 2005 op til at designeren arbejder med absolut position (og andet). Har du fået prøvet det af?
Du kan prøve mulighederne af ved at gå via menuen (du skal have en webform åben i designeren): Layout->Position->Auto Postion Options
Mht. hvordan du laver dine brugerkontroller, så er der ikke noget der er anderledes fordi det er en brugerkontrol du laver - istedet for en form. De samme muligheder er tilstede.
Du har ret i at det er Visual studio's mulighed for at generere html jeg er ude efter, og det synes jeg også helt klar fremgår af mit indlæg, jeg citere 'Det jeg vil placere, er alt mulig, dvs. tekstbokse, dropdown, radiobutton, listbox osv., og de skal jo så placeres sådan at de flugter med hinanden i flere rækker.'
Og som nævnt, så kender jeg så godt som alt til style og dermed også absolut positionering, men mit indtryk er, at det ikke bliver brugt ret meget inden for professionel web-udvikling, i det firma jeg arbejder bruger vi det ikke, og heller ikke i det forrige firma, brugte vi det.
Og du foreslår at jeg skal prøve at bruge VS mulighed for auto-positionering, det fatter jeg ikke du foreslår, for den html den får lavet, ser jo helt forfærdelig ud og forhindrer jo stort set at man kan bruge stylesheet. Nu ved jeg ikke hvad du laver, men hvis du arbejder med .net professionel, kan jeg ikke forestille mig at du bruger VS metode til at placere felter med.
Og jeg synes at det er godt træls, at der ikke er flere som kommenterer det her indlæg, for ud fra dine svar, kan jeg umulig vide hvad praksis er. Det kan godt være at du har ret, at de muligheder jeg har, er tabel, div, span m.m, men det tvivler jeg bare på.
Jeg havde ellers håbet på at jeg kunne skyde genvej ved at spørge her på eksperten, men nu er jeg åbenbart nød til at gå ind på Microsoft og se video og læse tonsvis af materiale angående design m.m. i .net. For der er virkelige meget stof der, ja der er hele site med sourcekode og beskrivelse. Eneste minus er at jeg kommer til at bruge en forfærdelig masse af min tid (arbejdstid), og så kan jeg endda risikere i sidste ende at finde ud af, at du har ret :-)
Hvis du stadig mener at det er tabel-vejen jeg skal gå, har du så ikke nogle link til f.eks. andre site, der underbygger det du siger, for som sagt tidligere, så kan jeg ikke bruge en holdning fra kun en person til at danne mig et billede af hvordan man generel gør det.
jamen - så vil jeg da prøve at kaste en kommentar afsted også. Ikke fordi jeg tror den bringer meget nyt med sig men alligevel... :)
Bare fordi man skifter server-teknologi ændrer klient-teknologien sig ikke og derfor har man de præcis samme muligheder i .NET som med asp, php og alm html; nemlig brug af html. i .NET er der, til forskel fra de andre sprog, mulighed for at bruge nogle kontroller der er meget lette at sætte op og giver god mulighed for styring af udseendet - outputtet ender under alle omstændigheder i html, men der skal bare mindre til at kode det end med fx asp. Disse kontroller er lavet for at gøre arbejdet lettere og fælles for dem alle (og det er her min pointe kommer frem) er at de dækker et tidligere ofte set problem, der blev løst med noget tilfældig kode men i sidste ende altid gav det samme resultat (bortset selvfølgelig fra indhold, farver og størrelse).
Når vi snakker design er det selvfølgelig også et ofte set problem - men til forskel fra de problemer kontroller løser så er der ikke et endeligt resultat her. VS har så valgt at deres løsning for at hjælpe brugerne bedst er auto position som arbejder ud fra divs - kan man ikke lide den metode må man altså selv i gang med at lave sine tabeller eller divs i mere eller mindre håndkode (i øvrigt den klart bedste måde at få kontrol og styring over ens design på). På præcis samme måde som man selv må i gang med det hårde arbejde hvis man fx ikke kan lide at .NETs kontroller outputter i tabels i stedet for divs.
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.