Google
      
发新话题
打印

用DW MX打造基于ACCESS的ASP.NET留言本(1)

用DW MX打造基于ACCESS的ASP.NET留言本(1)

第一章 ASP.NET简介(谈谈我的见解)

近来不断地有网友要求写一篇ASP.NET方面的教程,故此抽时间出了这部用DW MX打造ASP.NET留言本的教程,功能不是很强,但是初学者或具有一定的DW-MX ASP程序开发经验者入门课程。我不敢保证你仅仅是读了本教程,并且按照教程方法做出自己的ASP.NET留言本,就能登入ASP.NET的“大门”了。本文只是指导性地介绍如何在DW MX开发环境下开发一个较为实用的留言本,对相对较为复杂的代码不作详细讲解了。本教程的步骤性强,即是说,如果漏了教程中介绍的某一个步骤,可能会导致你的制作失败!
为何要学习ASP.NET?
ASP.NET是微软主推的新技术,是微软“来势凶凶 ”的.net战略中的一部分。ASP.NET是运行于windews平台.net框架下的一种新型的功能强大的WEB编程语言,一经推出就备受关注。发展至今,ASP.NET经过几年的改进和优化,已续渐成为成熟、稳定的能与JSP对抗的一种WEB编程语言。传统的ASP由于被束缚于弱类型的脚本语言功能限制,导致ASP难以应用在中大型系统中。ASP也存在安全性的问题,IIS的漏洞曾令许多中小型ASP网站受到骇客攻击而溃,泄露一些重要资料。而且,由于ASP是“面条式”的程序,所有ASP程序都是混杂在HTML周围,当ASP页面程序越来越复杂的时候,ASP代码被分割得七零八碎,使代码变得难于管理,甚至超出了一个程序员的管理能力。有时候,即使是你自己写出来的代码,过一些时间再看,也可能会看得非常吃力了。好了,ASP.NET问世后,把程序员从ASP的这种困境中拯救出来,一经推出,就广受程序员欢迎,并纷纷投入ASP.NET的环抱中,揪起.net学习热潮。其强大的功能,高系数的安全性,快捷的处理速率,条理清晰的类后代码以及许许多多的集成功能,令ASP程序员叹为观止,以前在ASP中难以实现的功能在ASP.NET变得如此较松,怎能不令人激动呢?ASP.NET是一个十分复杂的主题,即使一本多达600多页的专业书籍,对它的介绍也只是冰山一角。有关于ASP.NET的优点的话题在网上多的是,你去找找看,决定你学习ASP.NET的信心。
ASP初学者的困惑
常常听到初学ASP的朋友抱怨,怎么才开始学ASP,却又要弃它而学ASP.NET了?究竟学那一种好啊?
ASP.NET已经由不再是传统的ASP普通升级了,而是从头到尾地被彻底改写,表现为ASP程序员转向ASP.NET时,于编程思维上的巨大转变。ASP用的是JavaScript、VBScript这种脚本,是解释型的语言,严格来说,ASP只是一个开发环境,而不是真正意义上的编程语言。而ASP.NET采用了C#、VB.NET、JScript(这是微软经过改进可用于ASP.NET编程的高级语言,不是JavaScript)等高级语言编写,在功能上更加强大,不仅是WEB页面的处理上,也深入到系统底层中(例如访问windows注册表,缓存管理、事件日志等)。目前网络上的资料介绍多数是用C#和VB.NET,而JScript则很少。ASP.NET更接近windows应用程序,是一种面向对象的编译型程序,所有一切执行机理都是面向控制“对象”而作的。所以,ASP.NET中引入了一个“控件”的概念,必要的HTML网页代码由WEB控件在服务器端控制生成,而不是ASP中的“代码块”控制了。WEB控件的动态属性在后代码类文件中控制,固定的HTLM部分可以用纯HTML标签,或HTML服务器控件(普通HTML标签中加入runat="server" 属性,使其成为一个服务器控件,在服务器端执行,这样可以更有效地提高编译效率,使程序执行速度更快)。ASP.NET页面第一次被请求后,被编译成一个类文件,以后就直接执行这个类文件,从而速度较ASP快2-3倍以上,特别是在站点访问量很大的时候,ASP.NET仍能表现得很好,而ASP可能就要处于“休克”状态了。

由于ASP.NET的功能强大,势必要用到了C#和VB.NET等这些高级语言,可能本文的读者都没有windows应用软件编程经验,也未曾学习过其它的诸如JAVA、C+等编程语言。所以要在相同的时间内掌握ASP.NET较ASP来得困难些。幸运的是,ASP.NET完全支持ASP语法,ASP的五大对象RequestResponsesessionApplicationserver都被保留下来了,并且功能更有所扩展,其用法与ASP是类似的。 ASP.NET的默认语言是VB.NET,而我们以前学习的ASP用的脚本语言是VBScript,VBScript脚本是VB语言的子集,语法上也有许多类似之处,只不过VB.NET比VBScript在语法上要求更加严格,变量名一律要声明。同时,在ASP.NET/VB.NET(这里是指ASP.NET是用VB.NET语言编写的)中,支持了绝大多数的VBScript函数,一些ASP代码,直接移值到ASP.NET/VB.NET页面中,稍加少许的修改便能正常运行了,如果你有声明变量的习惯,甚至不用修改就能很好地工作。如果你对ASP语法较为熟悉,就能很轻松地编写ASP.NET/VB.NET代码实现ASP中的功能。如一些常用的判断语句、循环指令、函数定义和调用等。不过ASP.NET的已经不再支持“代码块”了,一些动态的HTML都由WEB服务器控件控制,通过Visible="False|True"属性来决定控件的显示和隐藏,从而实现在页面代码与应用程序分开。因此,你除了要学会VB.NET或C#的基本语法外,必须熟悉WEB控件的各项基本属性、行为和事件。但这些都不是很难,WEB控件大约有20个,不是很多,花几天时间练习这些控件的用法,一般都没问题了。当然不是叫你全部记忆这些控件的属性方法,你应该在本地机器上安Microsoft.NET框架和和Visual Studio .NET开发平台,通过简单的拖放控件,和属性面板来学习这些控件,那样你的学习效率要比手写纯代码高几倍。
必须注意,ASP.NET中不再支持代码块,所有动态的HTML代码都由WEB控件编程控制,这是由ASP转向ASP.NET时于编程思维上的一个重大转变。从而使主程序代码与页面代码(页面代码通常放置HTML、HTML控件和WEB控件,后缀名为“.aspx”,而主程序代码则放在另一个后缀名为“.vb”的类文件中),分离开来。说白了,一个ASP.NET应用程序其实是由两个文件.aspx和.vb构成的?
U馐瞧渲兄灰趁嬗牒蟠敕掷氲姆椒ǎ褂械木褪前阉幸恍┫喙氐?VB类代码编译成后缀名为“.DLL”文件,称为“复用控件”,是把一些重用性高的用户自己开发的控件集成在一起一次编译而成.DLL文件,这个DLL文件是不能反编译回VB.NET或C#代码,从而可以很有效地保护代码,并且能用来开发商业控件。DW MX正是采用这种方法,所以你用DW MX开发ASP.NET应用时,在ASP.NET页面看到的是Macromedia公司自己的开发的用户控件的一些属性描述代码,而不是VB.NET或C#代码,这些代码已经集成编译在DreamweaverCtrls.dll文件中了,稍后做留言本时就讲到这个。当然,也可以把程序代码与页面代码放在同一个.aspx文件中,运行结果是一样的。

鉴于C#语法掌握较为困难,而VB.NET更接近VBScript,所以ASP程序员由ASP转向ASP.NET时,自然会选择VB.NET作为脚本语言,VB.NET是不同于VB.60及其以下版本,VB.NET较C#容易学习。所以本教程只要是以VB.NET为止。如果你选择的是C#,请不要向我请教任何有关的ASP.NET问题,恐怕你会失望。

ASP是纯粹的网页编程脚本,用ASP.NET实现了与ASP等同的功能,在此基础上你应该更深入地学习VB.NET或C#语法,以便能编写更高级的ASP.NET应用。ASP与ASP.NET可以同时运行互不扰,但不能共享会话。
为何要选用DW MX作为学习ASP.NET入门工具?

我曾经在书店看过一本介绍有关如何用DW MX设计ASP.NET应用程序的书,书名为《Dreamweaver MX互动圣经》,里面就介绍有用DW MX做留言本的例子,但不是很详细,而且书里的截图软件界面是英文的,不方便用简体中文版的DW MX对照书本学习,也介绍有一些VB.NET的基本语法,是ASP菜鸟入门的好书。

DW MX也提供了“不用手写代码”就能创建ASP.NET页面的功能,但是ASP.NET服务器行为功能不是很多,听说已有高手写出了一些相关的功能插件,可以扩展它的服务器行为,也许DW MX再向下几个版本改进后,对ASP.NET能提供完善些的支持。用DW MX开发一些常见的ASP.NET数据库读写页面是很有工作效率的,基本不用手写代码就能实现记录的插入、删除和更新了,而DataSet数据集更提供了DataGrid、DataList、Repeater数据显示控件,显示数据的方式十分灵活。因此用DW MX开发些数据读写应用是没有问题的,DW MX不能做到的功能,就用手写代码页面实现,但是这些对于ASP程序员来说,也不是太难。当然,你不用担心DW MX生成的页面是否会存在执行效率低的问题,所有的ASP.NET核心程序都已集在DreamweaverCtrls.dll文件中了。DreamweaverCtrls.dll是Macromedia公司开发的控件,他们连Dreamweaver MX这样的大型软件都能写得出来,还用担心他们编的DreamweaverCtrls.dll会比专业ASP.NET程序员开发的代码效率低吗?
我的建议

好了,看了上面一大堆有关ASP.NET的介绍,现在,你应该决定是否学习ASP.NET了。记住,当你选择要决定学习ASP.NET的时候,必须坚定这信心。别人能学得了,你也能行!

对于不同基础的读者,我建议:

如果你完全不懂网页编程,甚至不知什么叫做服务器脚本,那么你适宜选用DW MX从做静态页开始,然后由:

开始:起跑——》用DW MX做HTM静态页网站——》HTML标签语法深入学习(很重要)——》DW MX做ASP动态页——》ASP基本语法五大对象——》掌握VBSscript函数使用(在VB.NET中支持)——》用DW MX练习制作ASP.NET页面——》转向Visual Studio .NET开发平台和阅读相关的ASP.NET书籍——》然后深入学习ASP.NET和VB.NET或C#语言及其它相关网页语言如XML等——》获“世界冠军”迈向成功彼岸——》找工作赚钱奉养老爸老妈——结束!

好了,你根据自己的知识基础选择起点。以上仅是个人观点,说得不好请不要扔鸡蛋砸我。


第二章 安装ASP.NET运行环境

很高兴,看到这里,你终于选择了学习ASP.NET。从现在起,我们来一起共同切磋、研究ASP.NET,并在这里讨论用DW MX做一个实用的留言本。

下载NET Framework1.1.exe安装文件

你可以从微软中国网站下载NET Framework1.1.exe安装文件,文件体积约23MB。

下载NET Framework1.1简体中文版语言包

因为ASP.NET页面的调试报错息比较详细,如果你E文不好,安装中文语言包会大大地方便你查找错误代码。

以上两款软件包可以从以下地址下载到:

http://www.microsoft.com/downloa ... 0-9f41-a333c6b9181d

安装IIS服务器

好了,下载NET Framework1.1.exe安装文件和简体中文语言包后,就可以进行安装了。在这之前你应该装好Internet 信息服务组件,你用的是Win 2000、Win XP或Win 2003的话,这个可以在“开始——》控制面板——》安装/删除windos组件”中钩选安装Internet 信息服务组件。下面以XP为例,在“开始——》控制面板——》性能和维护——》管理工具——》Internet 信息服务”来启动IIS服务器,选择默认网站的主目录和默认文档,添加默认文档为index.aspx。

安装.NET框架

请确保你的IIS服务器能正常运行,接着你才可以安装NET Framework1.1?
Framework1.1.exe启动安装程序,弹出询问对话框:



单击“是”,进入下一步就进入安装状态,一路下去,碰到对话框击回车就行了。安装程序自动完成所有的工作。安装完毕后,IIS不用作任何设置。然后再安装简体中文语言包。

搞定了吗?试试看。打开浏览器,输入以下地址:

http://localhost/rr.aspx

上面地址中,rr.aspx这个文件是不存在的,可以是任意名称。如果NET Framework1.1和语言包安装正确,服务器报错信息如以:



非常人性化的息信提示,而不是简简单单的给个“白脸”你说找不到网页了。注意,必须是后缀名为.aspx才能出现上述信息,对于ASP页面,仍然由ASP引擎处理,不会出现上图这么详细的提示。

新建ASP.NET站点

启动Dreamweaver MX,执行菜单“站点——》新建站点”,根据以下截图设置各项。







我把留言本放在AspNet文件夹中,对于IIS来说,该文件夹的物理路径已被http://localhost虚拟网址替代,用http://localhost就可以访问AspNet下的所有ASP.NET网页了。

都OK了吗?下一章进入正题。


第三章 设计ASP.NET留言本数据库 设计数据库表

本留言本用的是ACCESS数据库。启动ACCESS 2000,设计了两个表admin和MessageBook,前一个表是保存管理员用户名和密码,后者保存留言内容。



数据库名称保存为MyMessage.mdb,当然你可以自由更改。

表admin表字段设计如下:



两个字段为必填字段。

表MessageBook表字段设计如下:



除titleMessageBookMessageName为必填字段和不允许为空字符串外,其它字段都为非必填字段和允许空字符串。TimeInsert的默认值为“now()”。

好了,数据库好像很不费力气,就是这么简单!

创建数据库连接源

做好了数据库,下面创建一个连接。从“文件”面板,“站点”选中“ASP.NET留言本”。



执行菜单“文件——》新建”,弹出“新建文档”对话框,选择类别“动态页——》ASP.NET VB”,按“创建”按扭,便新建并打开了一个ASP.NET VB文件页面。如下图。



打开“应用程序面板”,切换到“数据库选项卡”或执行菜单“窗口——》数据库”打开数据库面板。点击加号弹出下拉菜单中选中“OLEDB连接”,因为我们用的是ACCESS数据库,故采用此方式。



弹出OLEDB连接对话框,如下图:



在连接字符串文本框中输入以下字串符:

"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=h:My DocumentswebASPAspNetdatabasesMyMessage.mdb;
User ID=;
Password="
连接名称为MyMessageData。

h:My DocumentswebASPAspNetdatabasesMyMessage.mdb

这句为数据库的真实物理路径。

如果你的数据库加有密码,即填入User ID=和Password=的值,否则留空。

单击“测试”按扭,正确的话弹出连接成功对话框:



好了,这一步任务已经完成,继续看下一章吧!


第四章 留言本首页的制作 整个留言本由八个文件组成:



index.aspx 留言本的首页
post.aspx 发表新留言页
face.aspx 选择头像页
admin_loing.aspx 管理员登陆页
admin_post.aspx 管理员回复页
admin_update.aspx 管理员留言编辑
admin_Cancellation.aspx 管理员注销页
userweb.ascx 用户控件,用来显示版权信息
留言删除是在首页完成的,管理员登陆后,显示出删除留言内容的复选框和允许执行删除操作。

部署DreamweaverCtrls.dll控件

这个步骤十分重要,几乎90%的初学者没有留意到这点,导致用DW MX做的页面完全不能正常工作?
reamweaverCtrls.dll控件到站点根目录下的bim目录中,即使你在页面中插入数据集和数据网络,并且在数据集对话框中测试时能读出数据,但是页面始终报错,报错信息如下:


提示找不到DreamweaverCtrls.dll程序集名称。好,现在,我们来动手部署这个文件。

新建index.aspx页,保存并打开文件,切换到“绑定面板”,如下图所示:



看见上图中的那个被蓝色线圈住的提示文字了吗?好,你终于看到了,点击“部署”二字,弹出下图对话框:



部署到AspNetbin目录中。点击“部署”按扭,弹出以下对话框,按“确定”关闭它。



然后打开AspNetbin目录,是否看到DreamweaverCtrls.dll文件。有的话,恭喜你,成功了。

紧记:DreamweaverCtrls.dll文件名称及其所在目录bin名称不能更改,并且bin文件夹必须保存在站点的根目录下,这是硬性要求,你就莫问为什么了。

index.aspx首页的制作

部署DreamweaverCtrls.dll控件后,你就可以任意的使用DW MX的ASP.NET服务器行为了。下面就先做个留言本首页。

操作步骤:

1、打开index.aspx页,先在页面中插入一个表单,切换到代码视图,找到
标榜,添加runat="server"属性,如。

然后根据下面页面样式在表单内插入四个表格,当然你可以完全定制自己的样式。



2、插入数据集

打开“服务器行为”行为面板,选择“数据集”。如下图。



弹出“数据集”对话框,设置如下图:



排序按ID号从大到小排列,这样可以把最新的留言排在最前面。切换到“绑定”面板,展开数据集字段,如下图所示



把各个字段绑定到页面上。如下图所示:



图片代码如下:

发新留言:
Qicq:" >
邮 箱:
主 页:
编 辑:
回 复:
用户头像:" >
表情图标:" >

复选框名称为“delete”,选定值为:<%# DataSet1.FieldValue("id", Container) %>

其中“编辑”和“回复”这两个图片链接,管理员登陆后才能链接到相关页,否则转到出错信息页。删除留言复选框只有在管理员登陆后才会显示出来,这里为编辑方便,所以让它显示出来。稍后还要编写一段函数代码,用来控制它的显示是否。还有的就是管理员回复内容,上面页面样式没有给出,是因为这段代码要根据该留言的回复状态决定是否显示,是动态的HTML,必须用一段函数判断实现。

打开MyMessage.mdb数据表,在MessageBook表中随便输入一些记录,除title(留言标题)、MessageBook(留言内容)、MessageName(留言人姓名)字段外,其它的都可以留空。按F12键预览,能显示记录了。如下图:



3、插入重复区域

上面显示的是一条留言,插入重复区域以显示更多的留言。选中下三个表格,第一个发新留言的那个表格就不用选中它了,如下图:

切换到“服务器行为”面板,点击加号弹出下拉菜单中选择“重复区域”, 如下图:



弹出重复区域对话框,设置每页显示10条记录。当然,你可以任意设数目,可不要太多了,否则会导致浏览速度变慢。



单击“确定”保存设置。DW MX就会自动在刚才选中的表格周围插入了Repeater控件。Repeater是三个数据显示控件中最为灵活的一个,可以任意定义自己的模板,使页面显得更美观。如果你看了源代码,会觉得Repeater控件好像和普通的ASP循环语句相似。其实Repeater控件不是普通的循环语句那么简单,它是由DataSet数据集读出数据库中的记录,并一次填充Repeater,不是由循环指令一行一行地读出数据。

好了,按F12键浏览页面,可以显示10条留言了?
4、添加分页功能

执行菜单“窗口——》插入”,如下图,打开“插入”面板。



切换到“应用程序”选项卡,如下图:



将光标定位在想要放置分页的地方,点击“”弹出数据集导航条窗口,设置如下:



单击“确定”保存设置。在页面中插入分页导航链接:



打开数据库,添加多于10条的留言记录,预览页面,能正常分页。

把四个单元格合并,将光标在表格内定位,点击“插入”面板应用程序的“”,弹出数据集导航状态窗口,如下图:



生成的导航状态,如下图:



上面分页有第一页、前一页、下一页和后一页功能,页数很多时,就有得你翻了。所以再添加一个页码功能,想看那一页,点击页码编号就能到达。另外,还应该有提示总页数、当前页功能。

在上图分页表格下再插入一个表格:



把光标在表格内定位,插入“显示当前页号”行为,如下图:



弹出“显示当前页号”,选择DataSet1数据集。



按“确定”保存设置。浏览页面,翻页时能显示当前是第几页。还有的就是如何显示总页数和页码了。这个须要手工添加些代码,但不是很多。

代码清单:

当前页:<%= DataSet1.CurrentPage + 1 %>
总页数:<%# DataSet1.LastPage+1 %>
分页页码程序:

<%dim i as integer
for i=1 to (DataSet1.LastPage+1)
if (DataSet1.CurrentPage + 1)=i then
response.Write("" & i &" ")
else
response.Write("" & i &"  ")
end if
next%>
表现出来的效果如下:



表格做得不是很美观,你可以修饰它。

5.编写显示函数代码

对于访客而言,是没有删除留言的权限的,我们在留言本的首页添加了删除记录复选框,这个复选框必须是管理员登陆后才会显示出来。这里编写一段函数代码,判断Session会话是否有值,有的话则显示出来,并允许执行删除操作。

找到这段代码:

">删除
这个直接在设计视图下选中复选框和删除文字,然后切换到代码视图就能找到该行代码了。替换成:

<%# strdetlete(DataSet1.FieldValue("id", Container)) %>

下面定义一个strdetlete函数,


这段函数代码的作用是,判断session("MM_Username")是否有值,有的话则显示复选框和删除文字。这段函数仍然沿用了传统的ASP书写风格,可能是由于本人对ASP.NET了解得不够深入,没有使用先进的控件技术。这样作的目的为了实现批量删除,而DataGind控件虽然方便,但只能一次删除一条留言,所以本人没有作单独的删除记录页面。试把if not session("MM_Username") is nothing then改为if session("MM_Username") is nothing then,预览页面,复选框显示,查看页面源代码,复选框的值都能对应地等于留言的ID号。

6、编写WEB控件代码

解决复选框的显示问题,编写一段删除记录的WEB控件代码?
4、添加分页功能

执行菜单“窗口——》插入”,如下图,打开“插入”面板。



切换到“应用程序”选项卡,如下图:



将光标定位在想要放置分页的地方,点击“”弹出数据集导航条窗口,设置如下:



单击“确定”保存设置。在页面中插入分页导航链接:



打开数据库,添加多于10条的留言记录,预览页面,能正常分页。

把四个单元格合并,将光标在表格内定位,点击“插入”面板应用程序的“”,弹出数据集导航状态窗口,如下图:



生成的导航状态,如下图:



上面分页有第一页、前一页、下一页和后一页功能,页数很多时,就有得你翻了。所以再添加一个页码功能,想看那一页,点击页码编号就能到达。另外,还应该有提示总页数、当前页功能。

在上图分页表格下再插入一个表格:



把光标在表格内定位,插入“显示当前页号”行为,如下图:



弹出“显示当前页号”,选择DataSet1数据集。



按“确定”保存设置。浏览页面,翻页时能显示当前是第几页。还有的就是如何显示总页数和页码了。这个须要手工添加些代码,但不是很多。

代码清单:

当前页:<%= DataSet1.CurrentPage + 1 %>
总页数:<%# DataSet1.LastPage+1 %>
分页页码程序:

<%dim i as integer
for i=1 to (DataSet1.LastPage+1)
if (DataSet1.CurrentPage + 1)=i then
response.Write("" & i &" ")
else
response.Write("" & i &"  ")
end if
next%>
表现出来的效果如下:



表格做得不是很美观,你可以修饰它。

5.编写显示函数代码

对于访客而言,是没有删除留言的权限的,我们在留言本的首页添加了删除记录复选框,这个复选框必须是管理员登陆后才会显示出来。这里编写一段函数代码,判断Session会话是否有值,有的话则显示出来,并允许执行删除操作。

找到这段代码:

">删除
这个直接在设计视图下选中复选框和删除文字,然后切换到代码视图就能找到该行代码了。替换成:

<%# strdetlete(DataSet1.FieldValue("id", Container)) %>

下面定义一个strdetlete函数,


这段函数代码的作用是,判断session("MM_Username")是否有值,有的话则显示复选框和删除文字。这段函数仍然沿用了传统的ASP书写风格,可能是由于本人对ASP.NET了解得不够深入,没有使用先进的控件技术。这样作的目的为了实现批量删除,而DataGind控件虽然方便,但只能一次删除一条留言,所以本人没有作单独的删除记录页面。试把if not session("MM_Username") is nothing then改为if session("MM_Username") is nothing then,预览页面,复选框显示,查看页面源代码,复选框的值都能对应地等于留言的ID号。

6、编写WEB控件代码

解决复选框的显示问题,编写一段删除记录的WEB控件代码?
4、添加分页功能

执行菜单“窗口——》插入”,如下图,打开“插入”面板。



切换到“应用程序”选项卡,如下图:



将光标定位在想要放置分页的地方,点击“”弹出数据集导航条窗口,设置如下:



单击“确定”保存设置。在页面中插入分页导航链接:



打开数据库,添加多于10条的留言记录,预览页面,能正常分页。

把四个单元格合并,将光标在表格内定位,点击“插入”面板应用程序的“”,弹出数据集导航状态窗口,如下图:



生成的导航状态,如下图:



上面分页有第一页、前一页、下一页和后一页功能,页数很多时,就有得你翻了。所以再添加一个页码功能,想看那一页,点击页码编号就能到达。另外,还应该有提示总页数、当前页功能。

在上图分页表格下再插入一个表格:



把光标在表格内定位,插入“显示当前页号”行为,如下图:



弹出“显示当前页号”,选择DataSet1数据集。



按“确定”保存设置。浏览页面,翻页时能显示当前是第几页。还有的就是如何显示总页数和页码了。这个须要手工添加些代码,但不是很多。

代码清单:

当前页:<%= DataSet1.CurrentPage + 1 %>
总页数:<%# DataSet1.LastPage+1 %>
分页页码程序:

<%dim i as integer
for i=1 to (DataSet1.LastPage+1)
if (DataSet1.CurrentPage + 1)=i then
response.Write("" & i &" ")
else
response.Write("" & i &"  ")
end if
next%>
表现出来的效果如下:



表格做得不是很美观,你可以修饰它。

5.编写显示函数代码

对于访客而言,是没有删除留言的权限的,我们在留言本的首页添加了删除记录复选框,这个复选框必须是管理员登陆后才会显示出来。这里编写一段函数代码,判断Session会话是否有值,有的话则显示出来,并允许执行删除操作。

找到这段代码:

">删除
这个直接在设计视图下选中复选框和删除文字,然后切换到代码视图就能找到该行代码了。替换成:

<%# strdetlete(DataSet1.FieldValue("id", Container)) %>

下面定义一个strdetlete函数,


这段函数代码的作用是,判断session("MM_Username")是否有值,有的话则显示复选框和删除文字。这段函数仍然沿用了传统的ASP书写风格,可能是由于本人对ASP.NET了解得不够深入,没有使用先进的控件技术。这样作的目的为了实现批量删除,而DataGind控件虽然方便,但只能一次删除一条留言,所以本人没有作单独的删除记录页面。试把if not session("MM_Username") is nothing then改为if session("MM_Username") is nothing then,预览页面,复选框显示,查看页面源代码,复选框的值都能对应地等于留言的ID号。

6、编写WEB控件代码

解决复选框的显示问题,编写一段删除记录的WEB控件代码?
4、添加分页功能

执行菜单“窗口——》插入”,如下图,打开“插入”面板。



切换到“应用程序”选项卡,如下图:



将光标定位在想要放置分页的地方,点击“”弹出数据集导航条窗口,设置如下:



单击“确定”保存设置。在页面中插入分页导航链接:



打开数据库,添加多于10条的留言记录,预览页面,能正常分页。

把四个单元格合并,将光标在表格内定位,点击“插入”面板应用程序的“”,弹出数据集导航状态窗口,如下图:



生成的导航状态,如下图:



上面分页有第一页、前一页、下一页和后一页功能,页数很多时,就有得你翻了。所以再添加一个页码功能,想看那一页,点击页码编号就能到达。另外,还应该有提示总页数、当前页功能。

在上图分页表格下再插入一个表格:



把光标在表格内定位,插入“显示当前页号”行为,如下图:



弹出“显示当前页号”,选择DataSet1数据集。



按“确定”保存设置。浏览页面,翻页时能显示当前是第几页。还有的就是如何显示总页数和页码了。这个须要手工添加些代码,但不是很多。

代码清单:

当前页:<%= DataSet1.CurrentPage + 1 %>
总页数:<%# DataSet1.LastPage+1 %>
分页页码程序:

<%dim i as integer
for i=1 to (DataSet1.LastPage+1)
if (DataSet1.CurrentPage + 1)=i then
response.Write("" & i &" ")
else
response.Write("" & i &"  ")
end if
next%>
表现出来的效果如下:



表格做得不是很美观,你可以修饰它。

5.编写显示函数代码

对于访客而言,是没有删除留言的权限的,我们在留言本的首页添加了删除记录复选框,这个复选框必须是管理员登陆后才会显示出来。这里编写一段函数代码,判断Session会话是否有值,有的话则显示出来,并允许执行删除操作。

找到这段代码:

">删除
这个直接在设计视图下选中复选框和删除文字,然后切换到代码视图就能找到该行代码了。替换成:

<%# strdetlete(DataSet1.FieldValue("id", Container)) %>

下面定义一个strdetlete函数,


这段函数代码的作用是,判断session("MM_Username")是否有值,有的话则显示复选框和删除文字。这段函数仍然沿用了传统的ASP书写风格,可能是由于本人对ASP.NET了解得不够深入,没有使用先进的控件技术。这样作的目的为了实现批量删除,而DataGind控件虽然方便,但只能一次删除一条留言,所以本人没有作单独的删除记录页面。试把if not session("MM_Username") is nothing then改为if session("MM_Username") is nothing then,预览页面,复选框显示,查看页面源代码,复选框的值都能对应地等于留言的ID号。

6、编写WEB控件代码

解决复选框的显示问题,编写一段删除记录的WEB控件代码?
4、添加分页功能

执行菜单“窗口——》插入”,如下图,打开“插入”面板。



切换到“应用程序”选项卡,如下图:



将光标定位在想要放置分页的地方,点击“”弹出数据集导航条窗口,设置如下:



单击“确定”保存设置。在页面中插入分页导航链接:



打开数据库,添加多于10条的留言记录,预览页面,能正常分页。

把四个单元格合并,将光标在表格内定位,点击“插入”面板应用程序的“”,弹出数据集导航状态窗口,如下图:



生成的导航状态,如下图:



上面分页有第一页、前一页、下一页和后一页功能,页数很多时,就有得你翻了。所以再添加一个页码功能,想看那一页,点击页码编号就能到达。另外,还应该有提示总页数、当前页功能。

在上图分页表格下再插入一个表格:



把光标在表格内定位,插入“显示当前页号”行为,如下图:



弹出“显示当前页号”,选择DataSet1数据集。



按“确定”保存设置。浏览页面,翻页时能显示当前是第几页。还有的就是如何显示总页数和页码了。这个须要手工添加些代码,但不是很多。

代码清单:

当前页:<%= DataSet1.CurrentPage + 1 %>
总页数:<%# DataSet1.LastPage+1 %>
分页页码程序:

<%dim i as integer
for i=1 to (DataSet1.LastPage+1)
if (DataSet1.CurrentPage + 1)=i then
response.Write("" & i &" ")
else
response.Write("" & i &"  ")
end if
next%>
表现出来的效果如下:



表格做得不是很美观,你可以修饰它。

5.编写显示函数代码

对于访客而言,是没有删除留言的权限的,我们在留言本的首页添加了删除记录复选框,这个复选框必须是管理员登陆后才会显示出来。这里编写一段函数代码,判断Session会话是否有值,有的话则显示出来,并允许执行删除操作。

找到这段代码:

">删除
这个直接在设计视图下选中复选框和删除文字,然后切换到代码视图就能找到该行代码了。替换成:

<%# strdetlete(DataSet1.FieldValue("id", Container)) %>

下面定义一个strdetlete函数,


这段函数代码的作用是,判断session("MM_Username")是否有值,有的话则显示复选框和删除文字。这段函数仍然沿用了传统的ASP书写风格,可能是由于本人对ASP.NET了解得不够深入,没有使用先进的控件技术。这样作的目的为了实现批量删除,而DataGind控件虽然方便,但只能一次删除一条留言,所以本人没有作单独的删除记录页面。试把if not session("MM_Username") is nothing then改为if session("MM_Username") is nothing then,预览页面,复选框显示,查看页面源代码,复选框的值都能对应地等于留言的ID号。

6、编写WEB控件代码

解决复选框的显示问题,编写一段删除记录的WEB控件代码?
发新话题
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容