文章内容分页

4 篇文章 0 订阅

经常会碰到内容比较长的文章,用以下方法可以控制显示的长度 

Dim  sql  As   String
    
Dim  myconn  As  SqlClient.SqlConnection
    
Dim  myCmd  As  SqlClient.SqlCommand

    
Function getdatareader(ByVal str As StringAs SqlClient.SqlDataReader
        myCmd 
= New SqlClient.SqlCommand(str, myconn)
        myconn.Open()
        getdatareader 
= myCmd.ExecuteReader()
    
End Function


    
Function executesql(ByVal sql As String)
        myCmd 
= New SqlClient.SqlCommand(sql, myconn)
        myconn.Open()
        myCmd.ExecuteNonQuery()
        myconn.Close()
    
End Function


    
Private   Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myconn 
= New SqlClient.SqlConnection
        myconn.ConnectionString 
= (xinxi.stringconnection)
        
If Not Page.IsPostBack Then
            newsid 
= Page.Request("newsid")
            ct 
= Integer.Parse(Request.QueryString("page"))
            sql 
= "select newsname,newscontent,addname,adddate,viewscount from news where newsid=" & newsid
            
Dim reader As SqlClient.SqlDataReader = getdatareader(sql)
            
If reader.Read() Then
                title.Text 
= reader.Item(0)
                
str = reader.Item(1)
                pagesize 
= 1000
                strl 
= str.Length

                author.Text 
= reader.Item(2)
                time.Text 
= reader.Item(3)
                Label2.Text 
= reader.Item(4)
                reader.Close()
                myconn.Close()
                substr()
            
End If
            sql 
= "update news set viewscount=viewscount+1 where newsid=" & newsid
            executesql(sql)
        
End If
        
'在此处放置初始化页的用户代码

    
End Sub


    
Dim  newsid  As   Integer
    
Dim  ct  As   Integer
    
Dim   str   As   String    ' 字符 
     Dim  strl  As   Integer    ' 字符总长度 
     Dim  pagesize  As   Integer    ' 每页显示的字符数 

    
Sub substr()

        
If strl = (strl / pagesize) * pagesize Then '看看页面的总记录是否能被每页的记录数整除 
            Dim i As Integer
            
For i = 1 To strl / pagesize
                Response.Write(
"页:<a href='new.aspx?act=new&action=news&newsid=" & newsid & "&page=" & i & "'" + ">" & (i) & "</" & "a>")
            
Next
            
Dim s As String = str.Substring(pagesize * ct - pagesize, pagesize)
            Label1.Text 
= s
        
ElseIf ct * pagesize > strl Then '在不被整除的情况下,最后一页的设置,如字符长13,每页3,则处理最后那一页的显示 
            Dim i As Integer
            
For i = 1 To (strl / pagesize) + 1
                Response.Write(
"页:<a href='new.aspx?act=new&action=news&newsid=" & newsid & "&page=" & i & "' /" + "a>")
            
Next
            
Dim s As String = str.Substring((ct - 1* pagesize, strl - (ct - 1* pagesize)
            Label1.Text 
= s
        
Else '在不被整除的情况下其他页面的显示设置 
            Dim i As Integer
            
For i = 1 To strl / pagesize + 1
                Response.Write(
"页:<a href='new.aspx?act=new&action=news&newsid=" & newsid & "&page=" & i & "'" + ">" + (i) + "</" + "a>")
            
Next
            
Dim s As String = str.Substring(pagesize * ct - pagesize, pagesize)
            Label1.Text 
= s
        
End If
    
End Sub



 
Private   Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Str = reader.Item(1)
pagesize 
= 1000
strl 
= Str.Length

substr()
end sub
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值