Avatar billede bredum Nybegynder
13. august 2002 - 17:27 Der er 2 kommentarer og
2 løsninger

Paging?? hvor virker det ikke

Jeg har følgende kode, men den vil ikke gå til side 2 og vider fra 50-100 records..:

<!--#include file="protect.inc"-->
<%
Query = Trim(Request.Form("Query"))
Valg) = Trim(Request.Form("Valg"))
%>
<HEAD><LINK href="style.css" type=text/css rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 margin="0" marginheight="0"
marginwidth="0">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="50%"><IMG height=84 src="image/sommertop.jpg" width=681></td>
    <td width="50%" valign="top">
    <!-- #include virtual="/dlg/velkom.inc"-->
    </td>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  <tr>
    <td width="19%"><!-- #include virtual="/dlg/menu.inc"--></td>
    <td width="81%" valign="top">
    <form method="POST" action="find_kunde.asp">
    <select size="1" name="Valg">
    <option>Kundenr</option>
    <option value="Mobil">Mobiltelefon</option>
    <option value="Snr">Sælgernummer</option>
    </select></p>
    <input type="text" name="Query" size="25">
    <input type="submit" value="Søg" name="Soeg">
    <input type="reset" value="Slet" name="slet">
    </form>
    </td>
  </tr>
</table>
<br>
<% If Query = "" Then

Else
%>
<!-- #include virtual="/dlg/database.inc"-->

<%
Set objRs = Conn.Execute("SELECT COUNT(*) AS records FROM DLG.saelger WHERE " & Valg & " = '" & Query & "'")
intRecords = int(objRs("records"))
objRs.Close
Set objRs = Nothing

intPage = Request.QueryString("page")
if intPage = "" OR not isNumeric(intPage) then
    intPage = int(1)
else
    intPage = int(intPage)
end if

intPageSize = int(50)
intStart = intPage*intPageSize
intStart = intStart-intPageSize
intPages = int(intRecords/intPageSize)+1

SQL = ("SELECT * FROM DLG.saelger WHERE " & Valg & " = '" & Query & "' LIMIT " & intStart & ", " & intPageSize & ";")

Set objRs = Conn.Execute(SQL)
    if objRs.EOF or objRs.BOF then
        Response.Write "Ingen poster"
    else
Response.Write(SQL)
%>
<table>
<tr class="lightgrey">
<td>Id</td>
<td>Kundenummer</td>
<td>Fornavne</td>
<td>Efternavn</td>
<td>Adresse</td>
<td>Postnr.</td>
<td>By</td>
<td>Telefon</td>
<td>Mobil</td>
<td>Fastnet</td>
<td>SælgerNr</td>
</tr>
<%
DO WHILE NOT objRs.EOF OR objRs.BOF %>
<tr>
<td><%= objRs("Id") %></td>
<td><a href="rediger_kunde.asp?Id=<%= objRs("Id") %>"><font color="#000000"><%= objRs("Kundenr") %></font></a></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;<a href="rediger_kunde.asp?Id=<%= objRs("Id") %>"><font color="#000000"><%= objRs("Mobil") %></td>
<td>&nbsp;<a href="rediger_kunde.asp?Id=<%= objRs("Id") %>"><font color="#000000"><%= objRs("Fastnet") %></td>
<td>&nbsp;<%= objRs("Snr") %></td>
</tr>
<%
objRs.MoveNext
Loop
%>
</table>
<%
For i = 1 to intPages
    if i = intPage then
        Response.Write "<b>" & i & "</b> "
    else
        Response.Write "<a href=""find_kunde.asp?page=" & i & """>"
        Response.Write i
        Response.Write "</a> "
    end if
next

End IF
objRs.Close
Set objRs = Nothing
Conn.Close
Set Conn = Nothing
End If

%>
</BODY>
============
Avatar billede coltau Juniormester
13. august 2002 - 18:26 #1
Først og fremmest er jeg ret sikker på at denne linie:
DO WHILE NOT objRs.EOF OR objRs.BOF
skal ændres til:
DO WHILE NOT objRs.EOF

Der ud over kan jeg kun se to ting der kan gå galt.
1. Denne asp-kode hedder ikke. find_kunde.asp :-) Men det gør den jo nok.
2. Dit SQL-udtræk indeholder færre end 50 poster.

Det er nok nr. 2

Som jeg kan se er det en kode hvor brugeren kan søge på Mobilnr eller Sælgernr. det betyder at den SQL-sætning du udføre er begrænset til alle med det valgte mobilnr eller alle med det valgte sælgernr.
Jeg kender ikke indholdet af databasen og ved derfor ikke hvormange records der er i dit udtræk - men jeg tror at der er mindre end 50 og så kan den jo ikke vise side 2. (50 - 100)

Prøv at udskrive AntalRecords ved at tilføje disse linier:

intRecords = int(objRs("records"))
Response.Write(intRecords) ' Til kontrol
Response.End ' Til kontrol
Avatar billede eagleeye Praktikant
13. august 2002 - 18:27 #2
Du skal havde overført disse to vidre til side 2 og 3 mm for de indgår så vidt jeg kan se i din  SQL som hendter record:
Query = Trim(Request.Form("Query"))
Valg) = Trim(Request.Form("Valg"))

Så vidt jeg kan se kommer de fra en form. De skal sendes vidre til de næste sider, formen bliver ikke send vidre så du må gemme de to i Session eller overføre dem via QueryString lige som page bliver overført fra side til side....


Så de to linier kode bliver til:

'Antager de kommer fra formen
Query = Trim(Request.Form("Query"))
Valg = Trim(Request.Form("Valg"))
'Hvis de er tomme hendt values fra QueryString.
if Query = "" then Query = Trim(Request.QueryString("Query"))
if Valg = "" then Valg = Trim(Request.QueryString("Valg"))


Linket som man trykker på for at få næste side, disse 3 linier:
        Response.Write "<a href=""find_kunde.asp?page=" & i & """>"
        Response.Write i
        Response.Write "</a> "

Skal ændres til:
        Response.Write "<a href=""find_kunde.asp?page=" & i
        Response.Write "&Query=" & Query
        Response.Write "&Valg=" & Valg & """>"
        Response.Write i
        Response.Write "</a> "
Avatar billede bredum Nybegynder
13. august 2002 - 19:38 #3
I deler point :-)
Avatar billede coltau Juniormester
13. august 2002 - 19:43 #4
Ja - eagleeye hedder vel ikke eagleeye for ingenting. Den fejl havde jeg ikke lagt mærke til.
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
Kurser inden for grundlæggende programmering

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