Avatar billede cpccorp Juniormester
01. marts 2004 - 17:54 Der er 3 kommentarer og
1 løsning

Oversigt med mulighed for at ændre rækkefølgen

Lad os sige at jeg har 5 emner

Emne 1
Emne 2
Emne 3
Emne 4
Emne 5

Og jeg så vil lave om på rækkefølgen ved f.eks. at knap/link som tilhører det enkelte emne så jeg flytter den op eller ned
Avatar billede eagleeye Praktikant
01. marts 2004 - 18:24 #1
Et eksemple. Kræver en tabel som hedder submenus og disse kolonner:
id : autonummer
menu1_titel : tekst
menu1_orden : tal

Det man sortere på er menu1_orden når man så udskriver menuen laver man en order by på menu1_order kolonnen, som bestemmer hvilken række følge de kommer i.


<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db1.mdb")

'flyt op/ned
dir = Request.QueryString("dir")
if dir <> "" then
  oldId = Request.QueryString("SubMenuID")
  tempID = 0
 
  SQL = "SELECT TOP 1 menu1_orden FROM submenus WHERE menu1_orden "
  if dir = "op" then
    SQL = SQL & " < " & oldID & " ORDER BY menu1_orden DESC"
    'newID = Int(oldId) - 1
  else
    SQL = SQL & " > " & oldID & " ORDER BY menu1_orden"
    'newID = Int(oldId) + 1
  end if
  'Response.Write SQL
  set rs = conn.Execute(SQL)
  newID = rs("menu1_orden")
 
  SQL = "UPDATE submenus SET menu1_orden = " & tempID & " WHERE menu1_orden = " & oldID
  Conn.Execute(SQL)
  SQL = "UPDATE submenus SET menu1_orden = " & oldID & " WHERE menu1_orden = " & newID
  Conn.Execute(SQL)
  SQL = "UPDATE submenus SET menu1_orden = " & newID & " WHERE menu1_orden = " & tempID
  Conn.Execute(SQL)
end if


'Udskriv formen..
'Så er det nødvendigt at hendte min/max menu1_orden for der ikke sker fejl..:
SQL = "SELECT min(menu1_orden) as minID, max(menu1_orden) as maxID FROM submenus"
set rs = conn.Execute(SQL)
maxID = rs("maxID")
minID = rs("minID")

SQL = "SELECT menu1_orden, menu1_titel FROM submenus ORDER BY menu1_orden"
set rs = conn.Execute(SQL)

Response.Write "<table>"
Response.Write "<tr><td>Undermen title</td><td>Ryk op</td><td>Ryk ned</td></tr>"

do while not rs.EOF
  Response.Write "<tr>"
  Response.Write "<td>" & rs("menu1_titel") & "<td>"

  if Int(rs("menu1_orden")) > minID then
    Response.Write "<td><a href=""?dir=op&SubMenuId="&rs("menu1_orden")&""">ryk op</a><td>"
  else
    Response.Write "<td>...<td>"
  end if
  if Int(rs("menu1_orden")) < Int(maxID) then
    Response.Write "<td><a href=""?dir=ned&SubMenuId="&rs("menu1_orden")&""">ryk ned</a><td>"
  else
    Response.Write "<td>...<td>"
  end if
  Response.Write "</tr>"

  rs.MoveNext
loop
%>
</table>

<%
Conn.Close
%>
</BODY>
</HTML>
Avatar billede cpccorp Juniormester
01. marts 2004 - 18:50 #2
Ser ud til at virke tak, send et svar
Avatar billede eagleeye Praktikant
01. marts 2004 - 19:01 #3
Ok :)) her et svar.
Avatar billede cpccorp Juniormester
01. marts 2004 - 23:35 #4
er det muligt at du kan implentere det her, for jeg kan ikke lige overskue det:

Dim Apples2

Set Apples2 = Server.CreateObject("ADODB.Connection")

ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; "
ConnStr = ConnStr & "DBQ=" & Server.MapPath("../db/mbifdatabasen.mdb")
Apples2.Open(ConnStr)

sql = "SELECT * FROM teams WHERE code LIKE 'Senior' ORDER BY sort_order"
              set rs = Apples2.execute(sql)
    while not rs.eof


Response.Write("<tr>" & vbcrlf)
if rs("aktive") = true then
Response.Write("        <td width=""31%""><b>" & rs("Teamname") & "</b></td>" & vbcrlf)
else
Response.Write("        <td width=""31%"">" & rs("Teamname") & "</td>" & vbcrlf)
end if
if rs("aktive") = true then
Response.Write("        <td width=""9%"" align=""center"">Ja</td>" & vbcrlf)
else
Response.Write("        <td width=""9%"" align=""center"">Nej</td>" & vbcrlf)
end if
Response.Write("        <td width=""20%"" align=""center"">" & rs("sort_order") & "</td>" & vbcrlf)
Response.Write("        <td width=""20%"">&nbsp;</td>" & vbcrlf)
Response.Write("        <td width=""20%"">&nbsp;</td>" & vbcrlf)
Response.Write("      </tr>")
rs.MoveNext
        Wend
        rs.Close
       
        Apples2.Close
        set Apples2 = Nothing


sort_order = orden
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