Hejsan! Ja det går. Om du säger att du returnerar 30 poster per sida, så bygger du html-koden så html-koden för post 1 - 10 skrivs, därefter ny kolumn och 20-29, samt sista kolumnen med 30-40 så får du 3 kolumner sen är det klart.. Hej, har gjort en html "dummy" med tre kolumner, men alla poster i databasen skrivs ut på första sidan...vad är galet?? nop, jag kan inte få det här att funka, scriptet skriver ut alla poster som finns i databasen på första sidan.............................. Hej!(Paging) Visa innehållet i flera kolumner
Jag använder följande kod för att visa innehållet i databasen.
Kan man göra så att innehållet visas i flera kolumner?
<code>
<!-- bild visning start -->
<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../../_data/begBoat.mdb")
'## -- hur många poster ska visas per sida --
intPageSize = 5 '## -- byt ut till hur många poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 '## -- visa första sidan som default --
'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT ID, Filnamn, Beskrivning FROM TBL_IMAGES ORDER BY ID DESC"
'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
'Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren ---------------------------------------------------
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td width="150" height="100" valign="top" align="left"><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80">
</td>
<td width="250" height="100" valign="top" align="left">"><%=objRS("Beskrivning")%></font><br>
</td>
</tr>
</table>
</center>
</div>
<%
'##------------------------------------------------------------------------------------------------
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades för användaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
%>
</code>Sv: (Paging) Visa innehållet i flera kolumner
Börja med att göra en dummy-html sida och sen fyller du på med asp-kod för att slutföra det..
/PelleSv: (Paging) Visa innehållet i flera kolumner
<code>
<!-- bild visning start -->
<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../../_data/begBoat.mdb")
'## -- hur många poster ska visas per sida --
intPageSize = 15 '## -- byt ut till hur många poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 '## -- visa första sidan som default --
'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT ID, Filnamn, Beskrivning FROM TBL_IMAGES ORDER BY ID DESC"
'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
'Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren ---------------------------------------------------
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80"><br>
"><%=objRS("Beskrivning")%></font></td>
<% objRS.MoveNext %>
<td><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80"><br>
"><%=objRS("Beskrivning")%></font></td>
<% objRS.MoveNext %>
<td><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80"><br>
"><%=objRS("Beskrivning")%></font></td>
</tr>
</table>
</center>
</div>
<%
'##------------------------------------------------------------------------------------------------
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades för användaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
%>
</td>
</tr>
<tr>
<td width="100%" valign="top" align="center"><br>
<%
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehåller själva subrutinen för sidnavigeringen --
%>
<!--#INCLUDE FILE="../includes/inc_pagingFunction.asp"-->
<!-- bild visning slut -->
</code>Sv: (Paging) Visa innehållet i flera kolumner
**gråter**Sv: (Paging) Visa innehållet i flera kolumner
Jag tog bara en lite bit av din kod och ändrade lite. Prova med det här. Det borde bli en ny rad efter tre poster. Jag har inte provat det men jag tycker att det borde funka:
%> <div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<% Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren ---------------------------------------------------
checkcounter = FormatNumber(Round(intCounter/3,2),1)
If right(checkcounter,1) <> "0" Then %>
<td><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80"><br>
"><%=objRS("Beskrivning")%></font></td>
<% Else %>
<td><img border="0" src="../thumbs/<%=objRS("Filnamn") %>" width="120" height="80"><br>
"><%=objRS("Beskrivning")%></font></td>
</tr>
</table>
</center>
</div>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<%
'##------------------------------------------------------------------------------------------------
objRS.MoveNext
Loop %>
Om det inte funkar så är det bara något fel i tal formateringen du kanske är bättre än mig på det...
/danne