案例10:网站类别页的制作.doc_第1页
案例10:网站类别页的制作.doc_第2页
案例10:网站类别页的制作.doc_第3页
案例10:网站类别页的制作.doc_第4页
案例10:网站类别页的制作.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

案例10:网站类别页的制作一、启动Microsoft Visual Studio 2005首先单击 后单击或者单击后在所在程序中找到Microsoft Visual Studio 2005程序组,在程序组中单击Microsoft Visual Studio 2005,如下图所示:稍候即可出现Microsoft Visual Studio 2005起始页,如下图所示:在起始页中,有最近的项目,也打开(项目、网站)、创建(项目、网站),如下图所示:项目即是Windows应用程序,网站即是Web应用程序,本案例在已经创建的网站中增加(添加)项目,所以单击打开后面的网站,选择创建网站时的盘和文件夹,如:F:李绍明, 如下图所示:单击打开,稍后出现Visual Studio 2005界面,如下图所示:二、在“李绍明”中添加一个名称为“Read.aspx”的项目解决方案管理器窗口的项目名称上右键单击,在快捷菜单中选择添加新项,如下图所示:在弹出的对话框中模板选择“Web窗体”,名称为“Read.aspx”,如下图所示:单击添加,解决方案管理器窗口如下图所示:设计器窗体如下图所示:三、类别页的布局与设计以下操作中,1、2两步的操作与主页的布局与设计是一样的。1、制作一个六行一列表格在页面设计模式、设计视图方式下,布局菜单选择插入表,如下图所示:在打开的对话框中,选择自定义表格,布局框架中行选择5,列选择1,选中宽度,值设置为760,单位为px(像素),如上图所示,单击确定后页面效果如下图所示:2、更改表格属性在属性窗口更改表格的属性值,如下图所示:Align:center(水平对齐方式:居中)Border:0(表格线宽度:0)CellPadding:0(内边距:0)CellSpacing:0(外边距:0)设置完成后,页面效果如下图所示:选中所有单元格,设置单元格属性,设置完成后,页面效果如下图所示:Align:center(水平对齐方式:居中)Width:760(宽度:760,单位为px)选中第四行单元格,设置单元格属性,设置完成后,页面效果如下图所示:Align:left(水平对齐方式:左对齐)Valign:top(垂直水平对齐方式:顶端)选中第三行单元格,设置单元格属性,设置完成后,页面效果如下图所示:Height:5(高度:5,单位为px)Bgcolor: #6699cc(背景颜色:#6699cc)3、在第五行再插入一个一行二列的表格,插入表格对话框如下图所示:在打开的对话框中,选择自定义表格,布局框架中行选择1,列选择2,选中宽度,值设置为100,单位为%(百分比),如上图所示,单击确定后页面效果如下图所示:选择中第一个单元格,设置属性值:Align:left(水平对齐方式:左对齐)Valign:top(垂直水平对齐方式:顶端)Width:40%(宽度:30,单位为百分比)选择中第二个单元格,设置属性值:Align:left(水平对齐方式:左对齐)Valign:top(垂直水平对齐方式:顶端)Width:60%(宽度:40,单位为百分比)属性设置完成后,效果如下图所示:在第一个单元格中插入2行一列的表格,插入表格对话框中的值如下图所示:在打开的对话框中,选择自定义表格,布局框架中行选择2,列选择1,选中宽度,值为100,单位为%(百分比),表格制作完成后,效果如下图所示:4、在单元格中添加标签控件,将标签控件的Text属性设为空、ID属性及添加标签控件后表格的效果如下图所示:Llogo为页头logo标签Lmenu为页面导航栏Ldqwz为当前位置Lzph为总排行标签Llph为类排行标签Lnr为内容标签Lyw为页脚标签四、事件代码编写编写如下代码:1、变量定义 Dim lb As StringDim ph As Integer = 10定义完成后,效果如下图所示:2、Load事件代码 If Not IsPostBack Then lb = Request.QueryString(lb) If InStr(UCase(lb), SELECT) 0 Or InStr(UCase(lb), OR) 0 Or InStr(lb, ) 0 Then Exit Sub End If Lmenu.Text = Application(menu) read_logo() 页 头logo read_yw() 页尾版权等 read_zph() 总排行 read_lph() 类排行 nr() 内容 End If本事件过程完成获取传递参数、根据参数是否合法确定下步操作、调用相关子过程显示信息标题的功能。第一行和第十二行是一个IfThenEnd If分支(选择)结构语句,中文含意为如果那么结束IF,If和Then之间是一个条件关系式,在执行IfThen语句时,判断If和Then之间的条件关系式,如果条件成立,执行Then和EndIf之间的语句,如果条件不成立,则跳过Then和End去时If之间的语句。If语句中的条件Not IsPostBack是在浏览器浏览网页的过程中,是否通过浏览器的后退按钮操作而来到本页面的,如果是,则不执行执行Then和EndIf之间的语句,如果不是则执行执行Then和EndIf之间的语句。第二行,是获取从链接地址传递的参数。第三行和第五行是一个IfThenEnd If分支(选择)结构语句,中文含意为如果那么结束IF,If和Then之间是一个条件关系式,在执行IfThen语句时,判断If和Then之间的条件关系式,如果条件成立,执行Then和EndIf之间的语句,如果条件不成立,则跳过Then和End去时If之间的语句。If语句中的条件InStr(UCase(lb), SELECT) 0 Or InStr(UCase(lb), OR) 0 Or InStr(lb, ) 0是判断所传递过来的参数是否包含数据库注入攻击的不安全因素字符或字符串,如果包含则退出本过程。第四行,是退出子过程。第六行,全局变量Application(menu)的值赋给Lmenu.Text。第七行、第八行、第九行、第十行、第十一行都是执行调用子过程。调用过程或子过程直接使用过程或子过程名称即可,也就是说, read_logo、read_yw、read_zph、read_lph、nr都是过程名称。3、read_zph过程代码 Lzph.Text = Dim myconn As New Data.OleDb.OleDbConnection Dim reader As Data.OleDb.OleDbDataReader Dim myCmd As Data.OleDb.OleDbCommand Dim strcom As String myconn.ConnectionString = Application(connstr) myconn.Open() strcom = select top & ph & * from 新闻 where 审核0 order by 次数 desc,id myCmd = New Data.OleDb.OleDbCommand(strcom, myconn) reader = myCmd.ExecuteReader() Do While reader.Read Lzph.Text &= & reader(标题) & & Loop reader.Close() myCmd = Nothing myconn = Nothing本过程完成从数据库中读数据,并将读出的数据的信息标题显示出来。第一行给L1.Text赋一个字符串,该字符串的功能是插入一张图片后换行。第二行、第三行、第四行、第五行、第六行、第七行、第八行、第九行、第十行、第十一行、第十二行、第十三行从数据库中读取数据的一种模式。从数据库中读数据的模式相对固定,一种为阅读器Reader,本例即是这种模式,另一种是数据集DataSet。两种模式各有特点,阅读器Reader占内存小,读取数据速度快,只能按顺序读取一次,就象水龙头,水只能从水龙头流出。数据集DataSet模式,占内存大,读取数据速度慢,读取数据方式灵活,可以顺序读取,也可从中随意读取,可读取多次。在数据库程序设计中,两种方式都会用到,而且根据数据处理的需要而确定读取数据的方式。本子过程使用的是阅读器Reader这种方式。第二行、第三行、第四行是分别定义使用数据库时的三个对象,第一是数据库联接对象,第二个阅读器对象,第三行是命令对象。第五行定义一个字符串变量。第六行数据库联接对象的联接字符串赋值。第七行打开数据库联接。第八行是SQL的Select语句,可简单描述为从数据库中选择适合条件的数据。关于Select语句,由于内容的关系,在此不详述。第九行是用第七行的数据库联接和第八行的Select语句赋给命令对象。第十行是执行第九行的命令,从数据库中选择适合条件的数据。第十一行和第十三行是一个Do While Loop循环结构,在Do While Loop循环结构中,Do While的后边是循环条件,本例中循环条件为reader.Read,即阅读器中有数据可读。Do While Loop之间为循环体语句,本例中只有一条语句,即第十二行。第十二行是把从数据库读出的数据标题作为超链接到read_new.aspx文件,并传递数据库中的数据ID和类别作用超链接参数,该超链接还带有提示提示信息,提示信息为title=发布日期: & reader(发布日期) & ,发布人: & reader(发布人) & ,浏览次数: & reader(次数) & ,超链接在新页面打开,每条信息占一行。第十三行关闭阅读器。第十四行释放命令对象所占内存空间。第十五行释放连结对象所占内存空间。3、read_lph过程代码 Llph.Text = Dim myconn As New Data.OleDb.OleDbConnection Dim reader As Data.OleDb.OleDbDataReader Dim myCmd As Data.OleDb.OleDbCommand Dim strcom As String myconn.ConnectionString = Application(connstr) myconn.Open() strcom = select top & ph & * from 新闻 where 类别= & lb & and 审核0 order by id myCmd = New Data.OleDb.OleDbCommand(strcom, myconn) reader = myCmd.ExecuteReader() Do While reader.Read Llph.Text &= & reader(标题) & & Loop reader.Close() myCmd = Nothing myconn = NothingEnd Sub该过程代码与read_zph过程代码类似。4、read_yw过程代码 Dim myconn As New Data.OleDb.OleDbConnection Dim reader As Data.OleDb.OleDbDataReader Dim myCmd As Data.OleDb.OleDbCommand Dim strcom As String myconn.ConnectionString = Application(connstr) myconn.Open() strcom = select 备注 from system where 标志=tails and 内容=首页尾注1 and 结果=是 myCmd = New Data.OleDb.OleDbCommand(strcom, myconn) reader = myCmd.ExecuteReader() If reader.Read Then Ltail.Text &= reader(备注) & End If Ltail.Text = Replace(Ltail.Text, , ) reader.Close() myconn.Close()该过程代码与read_zph过程代码类似。5、read_logo过程代码 Dim myconn As New Data.OleDb.OleDbConnection Dim mycommand1 As New Data.OleDb.OleDbCommand Dim reader1 As Data.OleDb.OleDbDataReader Dim strcom As String myconn.ConnectionString = Application(connstr) myconn.Open() strcom = select * from system where 标志=LOGO and 内容=次页1 mycommand1 = New Data.OleDb.OleDbCommand(strcom, myconn) reader1 = mycommand1.ExecuteReader If reader1.Read Then Llogo.Text = Replace(reader1(备注), Filename, reader1(结果) End If Llogo.Text = Replace(Llogo.Text, , ) reader1.Close() reader1 = Nothing mycommand1 = Nothing myconn.Close() myconn = Nothing该过程代码与read_zph过程代码类似。5、nr过程代码Dim plPage As Integer = 20 每页显示数Dim dqpage As Integer = Val(Request.QueryString(page) 当前页If dqpage = 0 Then dqpage = 1End IfDim dqrec As Integer 当前记录Dim mbrec As Integer 目标记录Dim pageZS As Integer 页数Dim plS As Integer 总数Dim i, j, k As IntegerDim strcom As String, cd As Integer, zt As Integer = 5strcom = select * from 新闻 where 类别= & lb & and 审核0 order by id descDim myConn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnectionDim myDataSet As System.Data.DataSetDim myCmd As Data.OleDb.OleDbDataAdaptermyDataSet = New System.Data.DataSetmyConn.ConnectionString = Application(connstr)myConn.Open()myCmd = New Data.OleDb.OleDbDataAdapter(strcom, myConn)myCmd.Fill(myDataSet, 新闻)myConn.Close()plS = myDataSet.Tables(新闻).Rows.CountIf plS = 0 Then Lnr.Text = 目前还没有这类数据!! myConn = Nothing myDataSet = Nothing Exit SubEnd IfIf plS / plPage = Int(plS / plPage) Then pageZS = plS / plPageElse pageZS = Int(plS / plPage) + 1End Ifdqrec = dqpage * plPage - plPagembrec = dqrec + plPage - 1If pageZS = plS Then mbrec = plS - 1End Ifk = 0cd = 60Dim temp As StringIf plS = 1 Then Lnr.Text = For i = dqrec To mbrec temp = temp = myDataSet.Tables(新闻).Rows(i).Item(标题) & If Len(temp) cd Then temp = Left(temp, cd - 1) & Lnr.Text &= & temp & k += 1 NextEnd IfFor j = k To plPage - 1 Lnr.Text &=  Next jLnr.Text &= 总数: & plS &   每页: & plPage &      & dqpage & / & pageZSIf dqpage = 1 Then Lnr.Text &=    & 上页 & Else Lnr.Text &=    & 上页End IfIf dqpage = pageZS Then Lnr.Text &=    & 下页 & Else Lnr.Text &=    & 下页 & End If Lnr.Text &= myConn.Close() myConn = Nothing myDataSet = Nothing本过程完成分页显示信息标题的功能。第一行定义一个变量名为plPage整型变量。第二行,是获取从链接地址传递的参数,把值赋给变量所定义的变量名为dqpage的变量。第三行和第五行是一个IfThenEnd If分支(选择)结构语句,中文含意为如果那么结束IF,If和Then之间是一个条件关系式,在执行IfThen语句时,判断If和Then之间的条件关系式,如果条件成立,执行Then和EndIf之间的语句,如果条件不成立,则跳过Then和End去时If之间的语句。If语句中的条件dqpage = 0是变量dqpage的值是为零,如果为零把dqpage的值赋为1。第六行、第七行、第八行、第九行、第十行、第十一行都是定义变量的语句。第十二行、第十三行、第十四行、第十五行、第十六行、第十七行、第十八行、第十九行、第二十行、第二十一行、以及子过程尾部三行从数据库中读取数据的一种模式。从数据库中读数据的模式相对固定,一种为阅读器Reader,本例即是这种模式,另一种是数据集DataSet。两种模式各有特点,阅读器Reader占内存小,读取数据速度快,只能按顺序读取一次,就象水龙头,水只能从水龙头流出。数据集DataSet模式,占内存大,读取数据速度慢,读取数据方式灵活,可以顺序读取,也可从中随意读取,可读取多次。在数据库程序设计中,两种方式都会用到,而且根据数据处理的需要而确定读取数据的方式。本子过程使用的是数据集DataSet这种方式。第十二行是SQL的Select语句,可简单描述为从数据库中选择适合条件的数据。关于Select语句,由于内容的关系,在此不详述。第十三行、第十四行、第十五行是分别定义使用数据库时的三个对象,第一是数据库联接对象,第二个数据集对象,第三行是命令对象。第十六数据集对象实例化。第十七行数据库联接对象的联接字符串赋值。第十八行打开数据库联接。第十九行是用第十七行的数据库联接和第十二行的Select语句赋给命令对象。第二十行是执行第十九行的命令,从数据库中选择适合条件的数据填充到数据集对象的“新闻”表。第二十一行关闭数据联结。第二十二行将数据集对象“新闻”表的数据记录总数赋给变量pls。第二十三行、第二十八是一个IfThenEnd If分支(选择)结构语句,中文含意为如果那么结束IF,If和Then之间是一个条件关系式,在执行IfThen语句时,判断If和Then之间的条件关系式,如果条件成立,执行Then和EndIf之间的语句,如果条件不成立,则跳过Then和End去时If之间的语句。If语句中的条件pls = 0是变量dqpage的值是为零也就是数据集对象中没有数据,则执行Then和EndIf之间的语句。第二十四行给Lnr.Text赋一个字符串。第二十五行释放命令对象所占内存空间。第二十六行释放连结对象所占内存空间。第二十七行退出本子过程。第二十九行、第三十行、第三十一行、第三十二行、第三十三行、第三十四行、第三十五行、第三十六行、第三十七行、第三十八行、第三十九行是为分页作准备,主要做总页数有多少,所取读的信息是哪条记录到哪条记录。第二十九行、第三十行、第三十一行、第三十二行、第三十三行是根据数据集“新闻”表的记录计算总页数。第三十四行、第三十五行、第三十六行、第三十七行、第三十八行、第三十九是计算所取读的信息是哪条记录(dqrec当前记录)到哪条记录(mbrec目标记录)。第四十行、第四十一行、第四十二是给变量赋值和定义变量。第四十三行、第五十二行是一个IfThenEnd If分支(选择)结构语句,中文含意为如果那么结束IF,If和Then之间是一个条件关系式,在执行IfThen语句时,判断If和Then之间的条件关系式,如果条件成立,执行Then和EndIf之间的语句,如果条件不成立,则跳过Then和End去时If之间的语句。If语句中的条件是数据集中的记录数pls = 1,也就是数据集对象中至少必须有一条数据,则执行Then和EndIf之间的语句。第四十四行给Lnr.Text赋一个字符串,该字符串的功能是插入一张图片后换行。第四十五行和五十一行是一个ForNext循环,在ForNext循环结构中,For语句是循环的第一个语句,Next是循环的最后一个语句,For和Next之间的语句称为循体语句,For语句的完整格式为:For = To Step 当每循环一次的变化量为1时,Step 后面的部分可以省略,本例即为这种形式。ForNext循环语句的执行过程为当执行到ForNext语句时,首先记录下循环变量的初值、终值、变化量,然后执行循环体语句,执行到Next语句时,将循环变量的值加上变化量与终值比较,如小于或等于终值则继续循环,否则结束循环。本例为中的循环体语句的基本功能是从数据集中读取数据记录的标题,并赋给Lnr.Text,每读一条换行一次。第四十六行、第四十七行给变量赋值。第四十八行判断新闻标题的长度是否过长,如超过一定长度,显示时,只显示前多少个字符长度。第四十九行,把一个超链接赋给Lnr.Text,链接到的文件名为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论