DATALIST分页---常用

本文介绍了一个基于 ASP.NET 的简单分页实现方法,通过 SQL 查询获取新闻数据,并使用自定义的分页控件展示数据。该方法包括计算总页数、当前页数以及显示相应的分页按钮等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
        '不要使用代码编辑器修改它。
        InitializeComponent()
        BindList(
1)
        PageListItem()
        ShowWhatButton()
    
End Sub
 

        
Sub BindList(ByVal PageNo As Integer)

       myconn 
= New SqlClient.SqlConnection
        myconn.ConnectionString 
= (xinxi.stringconnection)
        
Dim strSQL As String = "Select * From news  Order By newsid Desc "
        
Dim objCmd As New SqlClient.SqlDataAdapter(strSQL, myconn.ConnectionString)
        
Dim DS As New DataSet
        objCmd.Fill(DS, 
"news")
        
Dim myTable As DataTable = DS.Tables("news")

        
Dim TotalRecord As Integer = myTable.Rows.Count
        ShowTotalRecord.Text 
= TotalRecord


        
Dim TotalPage As Integer          
        
If TotalRecord < 20 Then         ‘20:每页显示的数量
            TotalPage 
= 1
        
Else
            
If TotalRecord Mod 20 <> 0 Then
                TotalPage 
= TotalRecord  20 + 1
            
Else
                TotalPage 
= TotalRecord / 20
            
End If
        
End If
        ShowTotalPage.Text 
= TotalPage


        
Dim tempTable As DataTable = myTable.Clone()

        
Dim I, J As Integer
        
For I = (PageNo - 1* 20 To PageNo * 20 - 1
            
If I > myTable.Rows.Count - 1 Then Exit For
            
Dim newRow As DataRow = tempTable.NewRow()
            
For J = 0 To myTable.Columns.Count - 1
                newRow(myTable.Columns(J).ColumnName) 
= myTable.Rows(I).Item(J)
            
Next
            tempTable.Rows.Add(newRow)
        
Next
        Label1.Text 
= PageNo
        myGuestbook.DataSource 
= tempTable
        myGuestbook.DataBind()
    
End Sub


    
Sub ShowWhatButton()
        
If PageList.SelectedIndex = 0 Then
            firstButton.Enabled 
= False

            preButton.Enabled 
= False
        
Else
            firstButton.Enabled 
= True
            preButton.Enabled 
= True
        
End If
        
If PageList.SelectedIndex = PageList.Items.Count - 1 Then
            nextButton.Enabled 
= False
            lastButton.Enabled 
= False
        
Else
            nextButton.Enabled 
= True
            lastButton.Enabled 
= True
        
End If
    
End Sub

    
Sub PageListItem()
        
Dim I As Integer
        PageList.Items.Clear()
        
For I = 0 To ShowTotalPage.Text - 1
            PageList.Items.Add(
"" & I + 1 & "")
        
Next
    
End Sub



    
Sub PageList_Change(ByVal sender As ObjectByVal e As EventArgs)
        BindList(PageList.SelectedIndex 
+ 1)

        ShowWhatButton()
    
End Sub



    
Sub PageChange(ByVal sender As ObjectByVal e As CommandEventArgs)
        
Select Case e.CommandArgument
            
Case "firstPage"
                PageList.SelectedIndex 
= 0
            
Case "prePage"
                PageList.SelectedIndex 
-= 1
            
Case "nextPage"
                PageList.SelectedIndex 
+= 1
            
Case "lastPage"
                PageList.SelectedIndex 
= ShowTotalPage.Text - 1

        
End Select
        BindList(PageList.SelectedIndex 
+ 1)
        ShowWhatButton()
    
End Sub
 
 
<table height="450" cellSpacing="0" cellPadding="0" width="600" align="center" border="0">
 
<TBODY>
  
<tr>
   
<td vAlign="top"><ASP:DATALIST id="myGuestbook" Runat="Server">
     
<HeaderTemplate>
     
</HeaderTemplate>
     
<ItemTemplate>
      
<table cellpadding="0" cellspacing="0" border="0" width="100%">
       
<tr>
        
<td Width="10%"></td>
        
<td>
         
<table>
          
<tr>
           
<td><Img Src="imagesjiantou.jpg"></td>
           
<td width="350"><class=style5 Href='xinwen.aspx?newsid=<%# Container.DataItem("newsid")%>'><%# Container.DataItem("newsname"%></A>
           
</td>
           
<td width="100" align="right"><%# DataBinder.Eval(Container.DataItem,"adddate","{0:d}")%>
           
</td>
          
</tr>
         
</table>
        
</td>
       
</tr>
      
</table>
     
</ItemTemplate>
     
<FooterTemplate>
     
</FooterTemplate>
    
</ASP:DATAL>
    
<HR>
    
<CENTER><BR>
     共
<ASP:LABEL id="ShowTotalRecord" Runat="Server" ForeColor="Red"></ASP:LABEL>条新闻&nbsp;
     
<asp:LinkButton id="firstButton" Runat="Server" OnCommand="PageChange" CommandArgument="firstPage"
      ForeColor
="Black">首页</asp:LinkButton>
     
&nbsp;
     
<asp:LinkButton id="preButton" ForeColor="Black" Runat="Server" OnCommand="PageChange" CommandArgument="prePage">上一页</asp:LinkButton>&nbsp;
     
<asp:LinkButton id="nextButton" ForeColor="Black" Runat="Server" OnCommand="PageChange" CommandArgument="nextPage">下一页</asp:LinkButton>&nbsp;
     
<asp:LinkButton id="lastButton" ForeColor="Black" Runat="Server" OnCommand="PageChange" CommandArgument="lastPage">尾页</asp:LinkButton>&nbsp; 
     页次:
     
<asp:label id="Label1" runat="server" ForeColor="Red"></asp:label>/<ASP:LABEL id="ShowTotalPage" Runat="Server"></ASP:LABEL>页 
     
&nbsp;转到:<ASP:DROPDOWNLIST id="PageList" Runat="Server" OnSelectedIndexChanged="PageList_Change" AutoPostBack="True"></ASP:DROPDOWNLIST>
    
</CENTER>
   
</td>
  
</tr>
 
</TBODY>
</table>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值