1

このコードを使用して、従来の ASP + Mysql でレコードセットのページネーションを表示します。

<ul class="pagination">
    <% IF Cint(PageNo) > 1 then %>
    <li><a rel="1" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="1">Prime</a></li>
    <li><a rel="<%=PageNo-1%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=PageNo-1%>"><</a></li>
    <% End IF%>
    <% For intID=1 To TotalPage%>
    <% if intID=Cint(PageNo) Then%>
    <li><a href="" class="selected"><%=intID%></a></li>
    <%Else%>
    <li><a rel="<%=intID%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=intID%>"><%=intID%></a></li>
    <%End IF%>
    <%Next%>
    <% IF Cint(PageNo) < TotalPage Then %>
    <li><a rel="<%=PageNo+1%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=PageNo+1%>">></a></li>
    <li><a rel="<%=TotalPage%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=TotalPage%>">Ultime</a></li>
    <% End IF%>
  </ul>

しかし、多くの pageresult がある場合、長い行の数字が表示されます.... ページを変更して次に表示するときに、5 ページのみを表示するにはどうすればよいでしょうか?

そのようです:

最初 < 1 2 3 4 5 > 最後

5をクリックすると

最初 < 5 6 7 8 9 > 最後

等...

4

2 に答える 2

2

このコードは、他のクエリ文字列パラメーターを保持したい場合にも機能します。ページ値を削除し、新しいページ値を追加して、ページング コントロール html を作成します。

Twitter Bootstrap Styles を使用します: http://twitter.github.io/bootstrap/components.html#pagination

使用法:

Response.Write PagingControl(10, 30, "?field-keywords=whatever&page=7")

コード:

    Public Function RemoveEmptyQueryStringParameters(strQueryString)
        If IsNullOrEmpty(strQueryString) Then Exit Function

        Dim strNewQueryString: strNewQueryString = ""
        strQueryString = Replace(strQueryString, "&amp;", "&")
        strQueryString = Replace(strQueryString, "?", "&")

        Dim arrQueryString: arrQueryString = Split(strQueryString ,"&")

        For i=0 To UBound(arrQueryString)
            strTempParameter = Left( arrQueryString(i), Instr( arrQueryString(i) & "=", "=" ) - 1 )
            strTempParameterValue = Right( arrQueryString(i), Len( arrQueryString(i) ) - InstrRev( arrQueryString(i), "=" ) )
            If Not IsNullOrEmpty(strTempParameterValue) Then
               strNewQueryString = strNewQueryString & "&" & arrQueryString(i)
            End If
        Next

        If InStr(strNewQueryString,"&") = 1 Then
            strNewQueryString = "?" & Right(strNewQueryString, Len(strNewQueryString) - 1)
        End If
        strNewQueryString = Replace(strNewQueryString, "&", "&amp;")

        Erase arrQueryString
        Set arrQueryString = Nothing

        RemoveEmptyQueryStringParameters = Trim(strNewQueryString)
    End Function

    Public Function AddQueryStringParameter(ByVal strQueryString, ByVal strParameter, ByVal strValue)
        Dim strNewQueryString: strNewQueryString = ""
        strNewQueryString = Replace(strQueryString, "&amp;", "&")
        strNewQueryString = Replace(strNewQueryString, "?", "&")

        strNewQueryString = strNewQueryString & "&" & strParameter & "=" & strValue

        If InStr(strNewQueryString,"&") = 1 Then
            strNewQueryString = "?" & Right(strNewQueryString, Len(strNewQueryString) - 1)
        End If
        strNewQueryString = Replace(strNewQueryString, "&", "&amp;")

        AddQueryStringParameter = Trim(strNewQueryString)
    End Function

    Public Function PagingControl(ByVal intPage, ByVal intPageCount, ByVal strQueryString)
        If intPageCount <= 1 Then
            PagingControl = ""
            Exit Function
        End If

        strQueryString = RemoveEmptyQueryStringParameters(strQueryString)
        strQueryString = RemoveQueryStringParameter(strQueryString, "page")

        Dim strQueryStringPaging: strQueryStringPaging = ""
      Dim strHtml: strHtml = "<div class=""pagination""><ul>"

      If cInt(intPage) > 1 Then
             strQueryStringPaging = AddQueryStringParameter(strQueryString, "page", "1")
             strHtml = strHtml & "<li><a href=""" & strWebSiteUrl & strQueryStringPaging & """>Anfang</a></li>"

             strQueryStringPaging = AddQueryStringParameter(strQueryString, "page", CInt(intPage - 1))
         strHtml = strHtml & "<li><a href=""" & strWebSiteUrl & strQueryStringPaging & """>&lt; Zur&uuml;ck</a></li>"
      Else
        strHtml = strHtml & "<li class=""disabled""><a href=""#"">Anfang</a></li>" & _
        "<li class=""disabled""><a href=""#"">&lt; Zur&uuml;ck</a></li>"
      End If

        Dim intPagesToShow: intPagesToShow = 10

      If intPageCount >= intPagesToShow Then
         If Cint(intPage)>Int(intPagesToShow/2) Then
            If Cint(intPage)>(intPageCount-Int(intPagesToShow/2)) Then
                        intStart = intPageCount-intPagesToShow
                        intEnd = intPageCount
            Else
                        intStart = intPage-Int(intPagesToShow/2)
                        intEnd = intPage+Int(intPagesToShow/2)
            End If
         Else
            intStart = 1
            intEnd = intPagesToShow
         End If
      Else
         intStart=1
         intEnd=intPageCount
      End If

      If intStart=0 Then
         intStart=1
      End If

      For i = intStart To intEnd
          If Cint(intPage)=i Then
             strHtml = strHtml & "<li class=""active""><a href=""" & strWebSiteUrl & strQueryStringPaging & """>" & i & "</a></li>"
          Else
             strQueryStringPaging = AddQueryStringParameter(strQueryString, "page", Cint(i))
             strHtml = strHtml & "<li><a href=""" & strWebSiteUrl & strQueryStringPaging & """>" & i & "</a></li>"
          End If
      Next

      If cInt(intPage) < cInt(intPageCount) Then
         strQueryStringPaging = AddQueryStringParameter(strQueryString, "page", CInt(intPage + 1))
         strHtml = strHtml & "<li><a href=""" & strWebSiteUrl & strQueryStringPaging & """>Vorw&auml;rts &gt;</a></li>"

            strQueryStringPaging = AddQueryStringParameter(strQueryString, "page", Cint(intPageCount))
            strHtml = strHtml & "<li><a href=""" & strWebSiteUrl & strQueryStringPaging & """>Ende</a></li>"
      Else
         strHtml = strHtml & "<li class=""disabled""><a href=""#"">Vorw&auml;rts &gt;</a></li>" & _
         "<li class=""disabled end""><a href=""#"">Ende</a></li>"
      End If

      strHtml = strHtml & "</ul></div>"

      PagingControl = Trim(strHtml)
    End Function
于 2013-06-04T05:33:52.867 に答える