10. september 2007 - 19:28Der er
16 kommentarer og 1 løsning
user controls og generering af sider
Hejsa...
Jeg har en del små billeder, som hver især skal sættes sammen med nogle labels og links.
Derfor er jeg igang med at lave et web user control...som indeholder en lille tabel hvori jeg så har indsat de nødvendige komponenter...
det jeg ønsker er, at vise fx. 10 komponenter per side og så have en menu hvor brugeren kan gå videre til næste side...hvis der er flere end 10 billeder tilgængelige på det pågældende tidspunkt...alle info ligger i en ms sql db...
Mit spørgsmål går på, hvordan laver jeg lettest og smartest denne funktionalitet i asp.net 2.0?
hehe, ja tænke nok at det ikke stod helt klart... Men det jeg sørge svar på, er, hvordan I ville lave det? Findes der noget smart i asp.net 2.0...et komponent eller lign. til at opnå den funktionalitet.
Altså jeg kan ikke se andre udveje end at lave min egen User Control (UC) som indeholde billede, links og labels. Men hvad jeg skal lægge UC ind i efterfølgende, for at det bliver let at arbejde med, er jeg i tvivl om. Jeg vil jo gerne have at det bliver stillet pænt op og at en menu med de nødvendige links: << < 1 side, side 2, side 3, ... > >> automatisk bliver genereret ud fra det som er nødvendigt.
Det mindst arbejdskrævende er at tage et GridView, bruge TemplateFields... og så er den ikke længere. Den har paging indbygget, så man slipper for at tænke på den slags. Et eksempel på hvad jeg mener er her: http://starterkits.asp.net/SmallBusiness/People.aspx
Kolonnen : Fabrikam Employee Profiles er et gridview med paging
hhmm...det har jeg faktisk rodet en del med...dog et stykke tid siden, derfor havde jeg lige overset den mulighed...:)
Dog kan jeg ikke huske om det er muligt at køre med fx. 2 rækker med 5 stk elementer i hver række i gridviewet...således at der ialt er 10 elementer pér side...
Umiddelbart er det så en datalist du ska have fat i - den kan man få i ønsket antal søjler. Men, så skal du selv lave paging, når du ikke gider se flere rækker på een side.
Et gridview er nok bundet til EEN DB-række per række.. kan ikke lige komme i tanker om nogen work-arounds på stående fod, medminder man begynder at lægge ting ind i hinanden - gridview in gridview, eller lign
jeg vil gerne have flere rækker! fx. 2...men idet at data ikke fylder så meget, så vil jeg gerne have flere elementer ved siden af hinaden...rækker og kolonner er ikke lige de korrekte ord at bruge i denne forbindelse...forstil dig...at du skal liste div. personer inkl. deres info, fra den side du linkede til tidligere op ved siden af hinanden...fx. 5 personer pér række....i stedet for, at det hele bare står lige under hinanden...
JA da - brug datalist og lav din egen paging. Hvis du kører med ms sql 2005 så har den en rækketæller som jeg ikke li kan huske hvad hedder - spørg om det i ms sql kategorien. For paging med datalist, google. Den dovne løsning er at lave et dataset og hive det hele ind, og så kan du jo nemt lave paging i datasettet. Den mere avancerede er så den med rækketælleren i MS SQL, hvor man blot hiver det ind som skal bruges på siden.
Hvis du har et flerbrugersite, så kan et dataset alligevel vise sig at være den mest effektive løsning, når det er cachet, så settet bliver fyldt en gang for alle og alle siderne hiver de 10 records ud fra datasettet.
ja okay...det må jeg prøve at lege med... dog ændres indholdet af databasen ofte...så jeg ved ikke lige hvad der er smartest...men tror nu at jeg benytter datasettet...da det er dejligt integreret :) Jeg kan vel bare gør så siden aldrig bliver cachet...
Jeg har hentet den site ned du linkede til tidligere...men kan ikke lige starte det op efter at have installeret det...? hvad skal man klikke på...det ligger flere forskellige .zip filer forskellige stender? Har du et godt link til brugen af datalist?
nå jeg skal jo også bruge et listview, så det er lige meget med sitet...Jeg prøver at finde et eksempel med et listview som er koblet til db...og som benytter paging...:)
Jeg glemte at nævne, at den nememste metode til at lave paging selv er nok at bruge en datasource. For eksempel, for en SqlDataSource kan du enable caching. Når du har gjort det, så kan du for datasourcen definere et filter - dvs specificere hvilke rækker skal komme frem. Sourcen gør det, at den henter hele datasettet og cacher det, og når der bliver kaldt databinding, så leverer den et dataview, afhængigt af hvad der blev sat som filterexpression. Så skal du blot selv styre, i din filterexpression, hvilke rækker der skal med i dataviewet.
datalisten binder du blot normalt til datasourcen, og dit filter styrer hvilke rækker vises.
det er anderledes , fordi på dit link hentes kun det der skal per side, mens i mit forslag så hentes hele baduljen og caches. Hvad er bedst må du selv vurdere.. og artiklen afslører den der fikse rækketæller jeg talte om : Row_Number:)
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.