3

ActiveServerPageを実行しました。ホワイエディスプレイで実行されており、会議が表示されます。表示する会議を6つに制限しました。データベースに15の会議があります。ただし、ホワイエディスプレイは一度に6つの会議しか表示できません。残りの会議を表示するには、ページングを実装したいのですが、方法がわかりません。

ページングは​​自動的に行われます。例:最初の6つの会議を10秒間表示し、次に10秒間次の6つの会議を表示し、次に10秒間最後の3つの会議を表示し、次に最初の6つの会議を表示します。

誰かがそれを手伝ってくれますか?どうすればいいのかわかりません。ありがとう!

 <%
    set rs=Server.CreateObject("ADODB.recordset")
    set rsRaum=Server.CreateObject("ADODB.recordset")

    rs.Open "select distinct buchung_id, von, bis, abteilung, veranstalter, THEMA, THEMA_ENABLED " & _
            "  from RESERVIERUNGRAUM r  " & _
            "      ,BUCHUNG b  " & _
            " where r.BUCHUNG_ID = b.ID " & _
            "   and von >= convert(date, getdate(), 4) " & _
            "   and von < convert(date, dateadd(day,1, GETDATE()), 4) " & _
            "   and BIS >= getdate() " & _
            "   and STORNO is null  " & _
            " order by von, bis" _
           ,objConn 


    lineMax = 6
    lineCount = 1
    do until rs.EOF



      rsRaum.open "select DISPLAY_ENABLED from Buchung where ID = " & rs("buchung_id"), objConn
                displayanzeige = rsRaum("DISPLAY_ENABLED")
      rsRaum.close


      rsRaum.open      "select distinct g.BEZEICHNUNG " & _
                       "from GEBAEUDE g, ETAGE e, RAUM r " & _
                       "Where g.ID = e.GEBAEUDE_ID and e.GEBAEUDE_ID = r.GEBAEUDE_ID and r.ID = " & raum_id, objConn

                       GebaeudeBezeichnung = rsRaum("BEZEICHNUNG")

      rsRaum.close



      rsRaum.open "select bezeichnung from Raum where ID = " & raum_id, objConn

          raumname = rsRaum("bezeichnung")

      rsRaum.close

      If lineCount > lineMax Then
        exit do
      End If 


      if ucase(displayanzeige) = "Y" or isnull(displayanzeige) then
    %>

'

<tr "margin-bottom:100px" height="70" valign="top">
    <td style="overflow:hidden;" class="<% =color%>"><% =thema %></td>
    <td class="<% =color%>"><% =Hinweistext %></td>
    <td align="center"; class="<% =color%>"><% =FormatDateTime( rs("von"), 4)%></td>
    <td align="center"; class="<% =color%>"><% =FormatDateTime( rs("bis"), 4) %></td>
    <td align="center"; class="<% =color%>"><% =GebaeudeBezeichnung %><br></td>
    <td align="center"; class="<% =color%>"><% =raumname %><br></td>
  </tr>

'

<%  

rs.moveNext

loop
rs.close 
%>
4

2 に答える 2

4

あなたはいくつかのことをする必要があるでしょう:

  1. スクリプトが、表示する「ページ」を指定するGETパラメーターを受け取るようにします。何かのようなもの:

    dim page = Request.QueryString("page")
    dim next_page = page + 1
    dim num_pages = [ you'll want to get this from your database table ]
    
  2. 新しい変数ページを適切に使用するようにデータベースクエリを変更します

  3. ページ上にJavaScriptを生成します。これにより、ブラウザは10秒後に次のページの新しいURLをロードします。総ページ数を超える場合は、最初に折り返します。

    <script type="text/javascript">
    function doNextPage(){
      window.location = "/my/display.asp?page=<% Response.Write next_page mod num_pages %>";
    }
    function doNextPageDelayed(){
      setTimeout("doNextPage()", 10000);
    }
    </script>
    
  4. また、関数「doNextPageDelayed」を実際に実行する必要があります。これを行うには、HTMLのbodyタグにコードを挿入します。

    <body onload="doNextPageDelayed()">
    </body>
    

このリンクは、javascript関数の実行を遅らせる方法を思い出すのに役立ちました:http: //www.geekpedia.com/KB55_How-do-I-make-a-JavaScript-function-wait-before-executing-( sleep-or-delay).html

于 2012-12-06T17:22:23.270 に答える
2

実用的な例を見ればもっと良いです...ページ全体。ここでインデントするにはコードが多すぎるだけです。添付ファイルを参照してください...ページネーション

この例には、ページ上のすべての行を選択するオプションを使用した、並べ替え可能な列と行の削除も含まれています。

于 2012-12-06T17:23:10.063 に答える