经常会碰到内容比较长的文章,用以下方法可以控制显示的长度
Dim sql As String
Dim myconn As SqlClient.SqlConnection
Dim myCmd As SqlClient.SqlCommand
Function getdatareader(ByVal str As String) As 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