Avatar billede bsp_andreas Nybegynder
18. august 2004 - 13:55 Der er 14 kommentarer og
1 løsning

repeater: vis header fra dataset

Hej.
Jeg har et dataset som er bundet til en repeater, som (endelig) er sat op ved hjælp af templates til en tabel.
Men nu skal jeg vide hvordan jeg trækker titlen fra en kolonne ud så jeg kan sætte den ind i mit template??

Jeg tror jeg skal bruge noget a'la "Container.DataItem.trala"
Avatar billede basementjack Nybegynder
18. august 2004 - 15:42 #1
Er det dette du ville have:

<%# Container.DataItem("Noget") %>
Avatar billede bsp_andreas Nybegynder
18. august 2004 - 15:49 #2
nej desværre.

Jeg skal bruge at jeg kan udtrække titlen på min kolonne.

Jeg aner ikke om det kan lade sig gøre - håber lidt at repeateren kan finde ud af hvilken kolonne den er kommet til og så skrive navnet/titlen ud på den kolonne.
Altså dynamisk kreering af kolonne-header.
Avatar billede basementjack Nybegynder
18. august 2004 - 15:52 #3
Du skal have en enkelt string ud?..
Avatar billede bsp_andreas Nybegynder
18. august 2004 - 15:56 #4
øhm ja - det skal jeg vel. Jeg har min DB og jeg vil gerne have titlerne på kolonnerne dynamisk ud så jeg kan skrive dem i en tabel-header.
Avatar billede basementjack Nybegynder
18. august 2004 - 15:59 #5
Kan denne bruges?:   

Public Function getPageTitle(id As Integer)
        Try
            Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
            Dim queryString As String = "SELECT PageTitle FROM Pages WHERE PageID = " & id & ";"
            Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
            dbCommand.CommandText = queryString
            dbCommand.Connection = dbConnection
            dbConnection.Open
            Dim res As String
              res = cStr(dbCommand.ExecuteScalar())
              dbConnection.Close()
            return res
        Catch
        End Try
    End Function

(min connectionString er defineret i toppen, da denne bruges over det hele..)
Avatar billede bsp_andreas Nybegynder
18. august 2004 - 16:06 #6
ja, det kræver jo bare et ekstra kald til db'en -
jeg har allerede hentet mit dataset og lavet binding til en repeater. Så var det at jeg tænkte at det kunne jeg måske bare bruge igen (på en eller anden smart måde)
Avatar billede bsp_andreas Nybegynder
18. august 2004 - 16:06 #7
hmm, troede faktisk at det var et mega nemt spørgsmål... ups
Avatar billede basementjack Nybegynder
18. august 2004 - 16:08 #8
Det er det sikkert også for en med en del mere erfaring med Asp.Net, men jeg har kun haft det mellem hænderne i 7-8 måneder..

Hvis du venter kommer der nok en anden forbi, som snepnet eller arne_v .. :D Det pjeler de jo.
Avatar billede thrytter Nybegynder
18. august 2004 - 17:37 #9
Kolonnenavnene kan fanges ved:

ds.Tables(_TabelNr_).Columns(_KolonneNr_).ColumnName

og antal udtrukne kolonner ved:

ds.Tables(_TabelNr_).Columns.Count


Har desværre ikke løsningen på, hvordan kolonnenavnene bindes til repeaterens header.
Avatar billede snepnet Nybegynder
18. august 2004 - 19:06 #10
hej andreas :o)
som udgangspunkt bindes headeren på en repeater ikke... ved ikke helt hvorfor det er lavet sådan - det virker lidt uhendsigtsmæssigt.
det betyder at du ikke kan lave det på "vanlig vis", som ville være noget i denne stil :
Text='<%# ((DataRowView)Container.DataItem).Row.Table.Columns[0].ColumnName %>'
Sådan lige umiddelbart lyder det mere som om du har brug for et datagrid (der er ikke den slags problemer), men du kan godt lave et tweak af det, og jeg kan også godt give dig et eksempel - men så ville det være fedt hvis du lige gav et vink om hvor høj en grad af dynamik du egentlig har brug for.
Hvis du har angivet dine templates i aspx-filen, uden de store dikkedarer skulle du jo kende dine behov for overskrifter ganske udmærket, og derfor ikke have det store behov for at gøre dine headers dynamiske i forhold til datakilden (ellers forstår jeg ikke helt hvorfor du bruger en repeater og ikke et datagrid).

korigér mig endelig hvis der er noget jeg har misforstået, og giv mig lige et par ord... så skal jeg nok lave et eksempel.

Mvh
Avatar billede bsp_andreas Nybegynder
19. august 2004 - 09:31 #11
Grunden til at jeg bruger en repeater og ikke datagrid var at jeg blev anbefalet at bruge repeater - fordi: at jeg skulle have et meget specielt udseende i mit grid ( http://www.eksperten.dk/spm/530107 ) og det vist derfor var nemmere at bruge repeater og så bare opbygge en table under det.

Det er efter min mening rent teoretisk mest korrekt at lave det dynamisk - et user control, som altid tilpasser sig er for mig mere anvendeligt end et hard.codet.
(men det er bare min mening - pt. er headeren i table'n hardcodet :) )

pt. har jeg et dataset og har bundet det til en repeater. Hvis du kan lave et eksempel på hvordan jeg lige hurtigt kan skrive dem ud i min table, er det top$.

mvh
Andreas
Avatar billede snepnet Nybegynder
19. august 2004 - 17:37 #12
Hej Andreas - jeg kan godt lave noget til dig i aften, men tænk lige endnu engang over hvilken grad af dynamik du fordrer. Dine overskrifter skal jo passe til det der er i dine templates, så det bliver kompliceret at lave en dynamisk header... Det er jo i givet fald en template du skal lave programmatisk - opbygge i forhold til en datakilde, og databinde seperat.

Jeg vil tro at du vil få det bedste resultat, hvis du laver et headeritem hvor du angiver dit layout, og så sørge for at lave en custom databinding til den.

Giv lige lyd om du kan leve med sådan en løsning (det er jo ikke en løsning der altid tilpasser sig - det er kun den tekst der vises der tilpasser sig).

Er det ok ?
Mvh
Avatar billede bsp_andreas Nybegynder
20. august 2004 - 08:54 #13
ja, jeg må vist lave noget custom halløj for at få det til at fungere. Løsningen er vist bare at iterere mig igennem et udtræk af db's kolonne-titler.
Avatar billede snepnet Nybegynder
20. august 2004 - 08:59 #14
Jeg vil meget gerne lave et lille eksempel til dig andreas... du siger bare til, så skal du få det inden længe.
Du får et svar her - hvis du har tilstrækkeligt, men bare råb op, så skal du få lidt kode.
Mvh
Avatar billede bsp_andreas Nybegynder
20. august 2004 - 09:07 #15
Værsgo point dér.

Hvis du har et eksempel på noget, vil jeg gerne se det - selvfølgelig :)
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