- 你所在位置:首页 〉VS.net〉ASP.net〉开发〉ASP.NET高级教程—显示留言
- ASP.NET高级教程—显示留言
- 作者:5do8 文章来源:http://www.blueidea.com/ 发布日期:2007-06-25 浏览次数:815
-
- 打印这篇文章
-
显示当前页的留言信息:
使用一个asp:repeater控件显示信息,我没有使用dataset 的分页是因为那样很浪费资源,每次把全部数据都读取的说,我是只读当page页面数据的:index.aspx
dim PAGENO as integer
dim pagestr as string = request.QueryString("page")
if not IsNumeric(pagestr) then
PAGENO = 1
else
PAGENO = int32.parse(Microsoft.VisualBasic.Left(pagestr, 10))
end if
dim PAGELIST AS integer = 6 '每页的信息条数为了防止page参数的非法性,我们做了一点额外的工作:转换类型到int32合法。
然后读取当页信息:
rpt_postlist.datasource = CoutData.CoutGuestData(PAGENO,PAGELIST ) '这里返回了dataset对象
rpt_postlist.databind()其中CoutData::CoutGuestData也是共享方法:
'返回计数,
shared Function CoutGuestData (pagei as integer,optional PAGESIZE as integer = 6 ) as DataSet
dim PAGENO as integer = pagei
dim STARTNO as integer = PAGESIZE *( PAGENO-1 ) '得到开始的记录
dim SQLSTR as stringSQLSTR = "select top "& PAGESIZE &" [book_id],[user_name],[book_title], [book_contents],[book_type],[book_time] from [szd_book] "
if PAGENO <> 1 then
SQLSTR &= "where [book_id] not in( select top "& STARTNO &" [book_id] from [szd_book] order by [book_id] desc) "
end if
SQLSTR &= " order by [book_id] desc"
Dim conn as New conn()
return conn.GetDataSet(SQLSTR)
End Functionshared Function CoutBbcode (ByRef strs as string ,Optional htmlorubb as integer = 0 ) as string
if htmlorubb = 0 then
return CjjerBase.bbCode.GetBbcode(strs)
else
return strs
End if
End Function这个方法比较简单,思路就是根据当前页计算记录的开始条 + 每页数,出现意外及时变换sql,然后读取数据库,返回dataset。
图示:

显示当前的分页信息:
pageinfo.text = CoutData.CoutPageLabel( PAGENO ,PAGELIST)
CoutData::CoutPageLabel
Shared Function CoutPageLabel( pagenoi as integer ,optional PAGESIZE as integer = 6 ) as string
dim PAGENO as integer
dim pagestr as string = pagenoi
PAGENO = int32.parse(Microsoft.VisualBasic.Left(pagestr, 10))
dim ALLNO as integer
dim RECORDSESQL as string = " select count([book_id]) from [szd_book]"
Dim conn as New conn()
ALLNO = conn.ExecuteScalar(RECORDSESQL)
conn.close()
dim STARTNO as integer = PAGESIZE *( PAGENO-1 ) '得到开始的记录
dim COUNTPAGE AS integer = CInt ( ALLNO / PAGESIZE + 0.5 ) '得到总页数
if ( ALLNO mod PAGESIZE ) = 0 then COUNTPAGE -= 1
dim PAGESTRS AS string
if PAGENO > COUNTPAGE then PAGENO = COUNTPAGE
PAGESTRS = "总数:" & ALLNO & "页数:" & COUNTPAGE & ",当前第" & PAGENO & "页,"
dim pageI as integer
for pageI = 1 to COUNTPAGE
if pageI = PAGENO
PAGESTRS &= pageI
else
PAGESTRS &= " " & pageI & " "
end if
next
return PAGESTRS
End Function思路就是:先获取总数,规划根据总数和每页的信息数目for循环即可。
图示:

post.aspx
基本的东西在下载的列表文件就有,此处不再追加。我说说核心的东西:
第一行:
ValidateRequest主要是检验提交的数据中有html标签的话是不是要处理的bool值,这里false,就是可以提交html标签的意思+几个验证控件+表单控件+验证码组成了这个页面的展示过程,其中验证码图片是:
inc/imgcheck.aspx的内容:
post.aspx的page_load():
先判断数据验证合法不,合法的话检验验证码:
function postimgcheck(session_str as string ,session_value as string) as Boolean
return session(session_str) = session_value
end function这些都合法的话添加都数据库:CinData::CinGeustData
Imports System
Imports System.Web
imports System.data
imports System.data.oledbnamespace CJJERGUESTBOOK
Public Class CinData
Shared Sub CinGeustData(user_name as string ,book_title as string ,book_contents as string)
dim conn as new Conn()
dim sqlstr as string = "insert into [szd_book](user_name,book_title,book_contents,book_ip) values(@user_name,@book_title,@book_contents,@book_ip)"
dim cmd as new oledbcommand
cmd = conn.oledbcommand(sqlstr)
cmd.parameters.add("@user_name", user_name)
cmd.parameters.add("@book_title",book_title)
cmd.parameters.add("@book_contents",book_contents)
cmd.parameters.add("@book_ip", HttpContext.Current.Request.UserHostAddress)
conn.executenonquery(cmd)
End Sub
End Class
End namespace就这点东西,演示图片:


本节完。
程序打包下载:点击下载
本教程未完,待续,陆续更新
经典论坛讨论帖:
http://www.blueidea.com/bbs/NewsDetail.asp?id=2591191sub post_but_click(s as object,e as eventargs)
dim sessionstr as string ="imgcheck"
if not postimgcheck(sessionstr,imgcheck.text)
imgcheckinfo.isvalid = false
else
if isValid then
post_mess.innerhtml ="谢谢您的留言"
CinData.CinGeustData(server.HtmlEncode(user_name.text),server.HtmlEncode(book_title.text),ly.text)response.redirect ("index.aspx")
end ifend if
end sub - 打印这篇文章
- 与本文主题相关的文章
- 返回首页
