Avatar billede Laitings Nybegynder
18. maj 2002 - 14:09 Der er 7 kommentarer og
1 løsning

Side 2 af sorter efter navn!?

Jeg har følgende kode som er en paging funktion af et en slags opslagstavle fra en Access Database. Opslagstavlen kan man sortere efter dato eller efter navn.

Det virker fint at sortere efter navn men problemet er at når man går til side 2 af paging funktionen stopper ASP'en med at sortere efter navnet! Hvordan undgår jeg det? Jeg tror problemet ligger i inner joinen!?

Håber I forstår og at I kan hjælpe!

-M

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=Nyt_DSN"
%>
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If
%>
<%
reqsort = Request("sorter")

Select case reqsort
%>
<%
Case 2
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM OpslagsTabel INNER JOIN PersonTabel ON OpslagsTabel.PersonID = PersonTabel.PersonID Order By PersonTabel.Fornavn"
strDSN = "DSN=Nyt_DSN"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b class=""text"">Der er ialt " & rs.Recordcount & " opslag. Dette er side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
    SQLSTR = "SELECT * FROM PersonTabel WHERE PersonID =" & rs("PersonID") & ""
    Set RS2 = myConn.Execute(SQLSTR)%>
   
            <tr>
          <td height="21" valign="top" colspan="2">
            <hr>
          </td>
          <td width="89"></td>
        </tr>
        <tr>
          <td height="34" valign="top" width="210" class="text">Skrevet af: <a href="#" onClick="window.open('userprofil.asp?id=<%=RS2("Email")%>','win5','height=500,width=650, resizable=yes, scrollbars=yes, toolbar=yes')"><%=rs2("Fornavn")%></a></td>
          <td width="201" valign="top" class="text" align="right">Dato: <%=rs("Tidspunkt")%></td>
          <td></td>
        </tr>
        <tr>
          <td height="34" valign="top" colspan="2" class="text"><br>
            <%= "<b>" & rs("Overskrift") & "</b>"%> </td>
          <td></td>
        </tr>
        <tr>
          <td height="12"></td>
          <td></td>
          <td></td>
        </tr>
        <tr>
          <td height="18" colspan="2" valign="top" class="text"><%= rs("Besked")%></td>
          <td></td>
        </tr>
        <tr>
          <td height="9"></td>
          <td></td>
          <td></td>
        </tr>
        <tr>
          <td height="59" colspan="2" valign="top">
            <hr>
            <br>
          </td>
          <td></td>
        </tr>
        <%intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p class=""text"">Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=opslagstavlentemp.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=opslagstavlentemp.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=opslagstavlentemp.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
      </table>
Avatar billede Laitings Nybegynder
18. maj 2002 - 14:10 #1
Sopm jeg lige glemte at nævne kommer opslagene fra én tabel, mens navnet bliver hentet fra en anden. Referencen mellem de to tabeller er personID'et!
Avatar billede keysersoze Ekspert
18. maj 2002 - 14:13 #2
du skal vel huske at føre din "reqsort" videre i din querystring - altså fx;

opslagstavlentemp.asp?page=" & intPage + 1 & "&reqsort=" & reqsort & "
Avatar billede eagleeye Praktikant
18. maj 2002 - 14:17 #3
du skal havde sorter med til alle dine sider:
Så alle dine links skal havde sorter=navn eller sådan noget.

Denne rette:
Response.Write "<a href=opslagstavlentemp.asp?page=" & intNum & ">" & intNum & "</a> "
Til dette:
Response.Write "<a href=opslagstavlentemp.asp?page=" & intNum & "&sorter=" & reqsort & ">" & intNum & "</a> "


Den anden sidste rettes til:
Response.Write "<a href=opslagstavlentemp.asp?page=" & intPage - 1 & "&sorter=" & reqsort & ">&lt;&lt;</a>"

Den sidste rettes til:
Response.Write "<a href=opslagstavlentemp.asp?page=" & intPage + 1 & "&sorter=" & reqsort & ">&gt;&gt;</a> "
Avatar billede Laitings Nybegynder
18. maj 2002 - 14:31 #4
Jeg er måløs Eagleeye! Det virkede perfekt uden rettelser af nogen art!!! Du R for cool!!

1000 tak for hjælpen! Hermed 60 af de velfortjente! :)

-M
Avatar billede Laitings Nybegynder
18. maj 2002 - 14:42 #5
Ikke at dit svar nødvendigvis skulle kræve rettelser! Det er bare første gang jeg prøver at hjælpen virker i aller første hug! :)
Avatar billede keysersoze Ekspert
18. maj 2002 - 14:44 #6
well - sådan er vi jo så forskellige... mit svar var det samme, men krævede lidt tankevirksomhed så du selv lærte og vidste hvad du gjorde i stedet for bare copy/paste :)
Avatar billede Laitings Nybegynder
18. maj 2002 - 14:49 #7
Hmmm...det er jo rigtigt nok! Men jeg har brugt så meget tankevirksomhed på at få skidtet til at køre i det hele taget, at skulle jeg bruge mere, var min hjerne sevet ud af øret! ...og jeg hader når det sker!

Anyways, det ER forstået og der skal da også falde props-points til dig KeyserSoze! :)

Tak!
Avatar billede keysersoze Ekspert
18. maj 2002 - 14:56 #8
ah - det overlever jeg nok :)
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