菜鸟请教:不用DataGrid如何实现网站分页,分页要求:保留打开页的前5页和后5页,谢谢!

解决方案 »

  1.   

    实现方法很多
    你可以用DG自带的分页技术,这也是最直接的方法
    你可以将分页条件写在SQL语句的存储过程里,这个方法实现相对安全与快速
    还有很多别的
      

  2.   

    <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing="0" width="100%" bgColor="#ff9966"
    border="1">
    <TR>
    <td align="right"><asp:linkbutton id="btnFirst" runat="server" CommandArgument="fist">首页</asp:linkbutton>&nbsp;&nbsp;
    <asp:linkbutton id="btnPrev" runat="server" Width="52px" CommandArgument="prev">上一页</asp:linkbutton>&nbsp;&nbsp;
    <asp:linkbutton id="btnNext" runat="server" CommandArgument="next">下一页</asp:linkbutton>&nbsp;&nbsp;
    <asp:linkbutton id="btnLast" runat="server" CommandArgument="last">末页</asp:linkbutton>&nbsp;&nbsp;
    <asp:label id="lblCurrentIndex" runat="server"></asp:label>/<asp:label id="lblPageCount" runat="server"></asp:label>&nbsp;&nbsp; 
    跳转到<asp:TextBox id="txtGoPage" runat="server" Width="30px" CssClass="textbox"></asp:TextBox>
    <asp:Button id="btnGo" runat="server" Text="GO" CssClass="button" Width="29px"></asp:Button></td>
    </TR>
    </TABLE>  Private Sub PagerButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
            '获得LinkButton的参数值
            Dim arg As [String] = CType(sender, LinkButton).CommandArgument        Select Case arg
                Case "next"
                    If DataGrid2.CurrentPageIndex < DataGrid2.PageCount - 1 Then
                        DataGrid2.CurrentPageIndex += 1
                    End If
                Case "prev"
                    If DataGrid2.CurrentPageIndex > 0 Then
                        DataGrid2.CurrentPageIndex -= 1
                    End If
                Case "fist"
                    DataGrid2.CurrentPageIndex = 0
                Case "last"
                    DataGrid2.CurrentPageIndex = DataGrid2.PageCount - 1
                Case Else
                    '本页值
                    DataGrid2.CurrentPageIndex = Convert.ToInt32(arg)
            End Select
            DataGrid2.DataBind()
        End Sub 'PagerButtonClick    Sub ShowStatsPage()
            '显示页面信息
            lblCurrentIndex.Text = "[<font color="">当前为第:" + (CInt(DataGrid2.CurrentPageIndex) + 1) + "页</font>]"
            lblPageCount.Text = "[<font color="">共:" + DataGrid2.PageCount + "页</font>]"
        End Sub 'ShowStatsPage    Private Sub DataGrid2_PageIndexChanged(ByVal [source] As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
            '处理按下数字的方法
            DataGrid2.CurrentPageIndex = e.NewPageIndex
            DataGrid2.DataBind()
        End Sub 'DataGrid2_PageIndexChanged
        Private Sub btnGo_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            '页面直接跳转的代码
            If txtGoPage.Text.Trim() <> "" Then
                Dim PageI As Integer = Int32.Parse(txtGoPage.Text.Trim()) - 1
                If PageI >= 0 And PageI < DataGrid2.PageCount Then
                    DataGrid2.CurrentPageIndex = PageI
                End If
            End If
            DataGrid2.DataBind()
        End Sub 'btnGo_Click