Avatar billede hulla Novice
21. oktober 2002 - 11:42 Der er 12 kommentarer og
2 løsninger

Dynamisk oprettelse af rækker i en tabel

Hvordan laver jeg en tabel som ikke har samme antal rækker hver gang siden køres.

Jeg vil gerne have, at rækkerne oprettes i en løkke alt efter størrelsen af en variable.

Hvordan gøres det ?
Avatar billede odegaard Nybegynder
21. oktober 2002 - 11:58 #1
øh ??? Det data du binder til din tabel skal vel blot ændre indhold.
Kunne det ikke uddybe det lidt? Det lyder mildest talt meget underligt :-)
Avatar billede hulla Novice
21. oktober 2002 - 12:04 #2
Jeg vil gerne vise nogle opslag i en tabel frem for brugeren. Det skal være en lang liste hvor hver record er et link.
Nogle gange giver opslaget måske 50 records andre gange 10 eller 2.

Der er vel ingen grund til så at lave en mega tabel hver gang.
Indholdet ændrer sig selvfølgelig også, men det gør antallet af søgeresultater også.

Hjalp det ?
Avatar billede odegaard Nybegynder
21. oktober 2002 - 12:17 #3
Henter du det data fra en database?
Så er det jo blot at binde datasættet direkte til et datagrid eller en repeater. Så genereres der jo en tabel automatisk som passer til resultatet
Avatar billede hulla Novice
21. oktober 2002 - 12:43 #4
Lyder fantastisk,.. du kan vel ikke lige vise mig lidt kode der benytter det ? :-) Har ikke prøvet det før
Avatar billede kryster Nybegynder
21. oktober 2002 - 15:00 #5
Jeg kan ikke helt finde ud af om asp.net er det samme som asp, men her kommer et forslag som virker i asp. Data bliver hentede fra en Access database.
Lad os antage at din tabel har felterne link og navn.
<html>
<body>
<%
'Databaseforbindelse - husk at angive sti til din database
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("databasenavn.mdb")
   
  Conn.Open DSN

'SQL sætning opbygges
  strSQL = "Select * From tabelnavn"

'SQL sætning eksekveres
  Set rs = Conn.Execute(strSQL)
%>
<table width="800" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><h1>Overskrift.</h1></td>
  </tr>
<%
  If Not rs.EOF Then
    Do
%>
  <tr>
    <td><a href="<%Response.Write rs("link")%>">
                  <%Response.Write rs("navn")%></a></td>
  </tr>
<%
'Gå til næste Record i rs
    rs.MoveNext

'Fortsæt indtil rs er gennemløbet (EOF = End Of File)
    Loop While Not rs.EOF
  End If
'Luk databaseforbindelse
  Conn.Close
  Set Conn = Nothing
%>
</table>
</body>
</html>
Avatar billede kryster Nybegynder
21. oktober 2002 - 15:10 #6
Det er disse linier der er dynamiske.
Do
%>
  <tr>
    <td><a href="<%Response.Write rs("link")%>"><%Response.Write rs("navn")%></a></td>
  </tr>
<%
rs.MoveNext
Loop While Not rs.EOF
Avatar billede simon.ulsnes Nybegynder
21. oktober 2002 - 15:38 #7
kryster >> ASP.NET er ikke det samme som ASP, omend noget ASP kode godt kan virke i ASP.NET-miljøet.
Avatar billede kryster Nybegynder
21. oktober 2002 - 15:46 #8
Og så holder jeg mig væk her fra indtil jeg finder ud af hvad .net er.
Avatar billede odegaard Nybegynder
21. oktober 2002 - 17:00 #9
Hehe ok. Det var jo også næsten blasfemi at vise sådan noget oldnodisk kode i denne kategori :-)
Min fremgangsmåde kan du ikke benytte i ASP. Der må du selv loope dine rækker igennem.
Avatar billede odegaard Nybegynder
21. oktober 2002 - 17:04 #10
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.oleDB"%>
<script language="VB" runat=server>
Sub Page_Load(Sender as Object, E as EventArgs)

    Dim myConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=minDB.mdb")
    Dim strSQL As String = "Select * From minTabel"
    myConn.Open()
      Dim objDataCmd As OleDbDataAdapter = New OleDbDataAdapter(strSQL, MyConn)
      Dim objDS as new DataSet
      objDataCmd.Fill(objDS)   
    myConn.Close()
    result.DataSource = objDS
    result.DataBind()
End sub
</script>

<html><body>

<form runat="server">
<asp:DataGrid id="result" runat="server" />
</form>
                 
</body></html>
Avatar billede hulla Novice
22. oktober 2002 - 09:12 #11
jeg bruger ikke det der OLE, men SqlClient.SqlConnection(),...så jeg bruger derfor ikke DataSet men f.eks. DataReader,... giver det ikke forskelle ?
Avatar billede odegaard Nybegynder
22. oktober 2002 - 17:12 #12
Du erstatter bare OleDb* med SqlClient.Sql*
Der er f.eks. også en SqlDataAdapter.
Avatar billede hulla Novice
25. oktober 2002 - 11:50 #13
sådan en Datagrid,.. hvad har den med tabeller at gøre,..skaber den en eller hvordan ? eller hvordan får man dB indholdet vist ?
Avatar billede odegaard Nybegynder
25. oktober 2002 - 15:43 #14
Man får DB-indholdet vist i en <table> (DB'en består af rækker og kolonner, og det gør tables heldigvis også :-)
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

IT-JOB

Politiets Efterretningstjeneste

API-udvikler til PET

Netcompany A/S

IT Consultant

Capgemini Danmark A/S

AI/Data Engineer