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

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 

 

posted on 2007-03-04 17:31  打你鸟鸟头  阅读(202)  评论(0)    收藏  举报