理论教育 ASP.NET4.O网站开发从入门到精通:实现论坛前台表示层

ASP.NET4.O网站开发从入门到精通:实现论坛前台表示层

时间:2023-11-01 理论教育 版权反馈
【摘要】:图7-46 首页栏目列表控件DataList的列设置如例程7-62所示。该控件的组成如图7-47所示。该页以NoTop.master为母版页,使用一个Wizard控件来实现找回密码的不同步骤,如图7-53~图7-55所示。该页面由修改用户信息控件组成,本身不含处理代码。图7-58 修改用户信息控件页面载入时首先判断是否登录,若没有则重定向到登录页面;若已经登录则将用户信息绑定到对应控件。若设置了新密码则调用ModifyPassword方法修改密码,并将Session清空并提示重新登录。

ASP.NET4.O网站开发从入门到精通:实现论坛前台表示层

(1)论坛首页Default.aspx。该页面使用MasterPage.master作为母版页,另外使用首页栏目列表控件。本身没有处理代码。

(2)首页栏目列表控件HomeItemControl.ascx。该控件由一个DataList和一个ObjectDataSource组成,如图7-46所示。

978-7-111-43915-8-Chapter07-151.jpg

图7-46 首页栏目列表控件

DataList的列设置如例程7-62所示。

例程7-62 DataList的列设置

978-7-111-43915-8-Chapter07-152.jpg

从例程可以看出,使用了子栏目列表控件来显示子栏目。

(3)子栏目列表控件SubItemControl.ascx。该控件的组成如图7-47所示。

该控件有一个栏目ID属性,在设置属性的同时对DataList进行绑定。

(4)首页登录控件HomeLoginControl.ascx。该控件组成如图7-48所示。

页面载入时首先判断是否已经登录,若是则不显示该控件,单击登录按钮时,使用用户业务的Login方法,若登录失败则提示信息并返回上一步;若登录成功则将User实体保存在Session中,之后根据用户实体的角色ID,调用角色业务的GetRoleNameByRoleID方法来获取角色名称,将Role实体也保存在Session中。然后判断来自哪里,若没有指定fromurl则导向请求页,否则导向对应页。

978-7-111-43915-8-Chapter07-153.jpg

图7-47 子栏目列表控件

978-7-111-43915-8-Chapter07-154.jpg

图7-48 首页登录控件

(5)顶部菜单控件TopMenuControl.ascx。该控件组成如图7-49所示。

978-7-111-43915-8-Chapter07-155.jpg

图7-49 顶部菜单控件

页面载入时,首先根据Session里的内容判断用户是否登录,若没有登录则将自己隐藏;若已登录则绑定对应信息。

(6)注册页面Register.aspx。注册页面由注册控件组成,本身不含代码。

(7)注册控件RegisterControl.ascx。该控件由一个Wizard控件组成,图7-50和图7-51显示了Wizard控件注册页面的两个步骤:

页面载入时,为超级链接控件添加客户端事件,代码请参见本书附带光盘中的代码。

978-7-111-43915-8-Chapter07-156.jpg

图7-50 注册页面第一步

978-7-111-43915-8-Chapter07-157.jpg

图7-51 注册页面第二步

单击完成按钮时,首先检查用户名是否存在,若存在,则提示错误并返回上一步;若不存在,则使用用户业务层的Register方法将资料入库,同时保存激活码,之后调用Common类的SendMail方法将激活链接发送到用户注册的邮箱中。

(8)用户激活页面Activation.aspx。该页面由激活控件组成,本身没有处理代码。

(9)用户激活控件ActivationControl.ascx。该控件组成如图7-52所示。

978-7-111-43915-8-Chapter07-158.jpg

图7-52 激活控件

页面载入时,首先判断激活信息是否完整,若不完整则将提示信息设置为信息不完整;若完整则调用用户业务的SetUserActived方法来激活用户,根据执行的结果分别设置提示标签。

(10)检查用户名是否重复页面CheckUser.aspx。该页面由一个标签和一个超级链接控件组成,页面载入时,首先判断是否提供用户名,若没有则提示错误;若有则使用用户业务的IsUserNameExist方法进行判断,根据判断的结果分别显示不同的提示。

(11)用户密码保护页面UserProtection.aspx。该页以NoTop.master为母版页,使用一个Wizard控件来实现找回密码的不同步骤,如图7-53~图7-55所示。

978-7-111-43915-8-Chapter07-159.jpg

图7-53 密码保护第一步

978-7-111-43915-8-Chapter07-160.jpg

图7-54 密码保护第二步

978-7-111-43915-8-Chapter07-161.jpg

图7-55 密码保护第三步

第一步单击“下一步”时,判断用户名是否存在,若存在则转入第二步。第二步载入时获取密码保护问题,提示输入答案,若答案正确则转入第三步。

单击“修改”按钮,首先密码保护的第一步和第二步是否正确,若不是则将页面重定向到UserProtection.aspx页面的第一步,若是则使用eNewsUser实体的ChangePasswordByUserName方法。

(12)用户登录页面Login.aspx。在有些时候,如果用户查看了非登录用户不能看的页面时,需要转到该页面进行处理。该页面由登录控件组成,本身不含处理代码。

(13)用户登录控件LoginControl.ascx。该控件组成如图7-56所示。登录处理过程和前面讲的登录过程十分相似,在此不作赘述。

(14)查看用户信息页面UserInfo.aspx。该页面由页面信息控件组成,本身不含处理代码。(www.daowen.com)

(15)用户详细信息控件UserInfoControl.ascx。该控件组成如图7-57所示。

978-7-111-43915-8-Chapter07-162.jpg

图7-56 登录控件

978-7-111-43915-8-Chapter07-163.jpg

图7-57 用户详细资料控件

该控件在载入时,首先判断用户是否已经登录,若没有则重定向到登录页面;若已经登录则判断传递参数userid的有效性,若无效则重定向到首页;若有效则绑定用户信息。

(16)修改用户信息页ModifyInfo.aspx。该页面由修改用户信息控件组成,本身不含处理代码。

(17)修改用户信息控件ModifyInfoControl.ascx。该控件组成如图7-58所示。

978-7-111-43915-8-Chapter07-164.jpg

图7-58 修改用户信息控件

页面载入时首先判断是否登录,若没有则重定向到登录页面;若已经登录则将用户信息绑定到对应控件。

单击修改按钮时,若没有填写密码输入框,首先使用用户业务的ModifyInfo方法修改资料。若设置了新密码则调用ModifyPassword方法修改密码,并将Session清空并提示重新登录。

(18)未登录提示控件NotLoginControl.ascx。该控件组成如图7-59所示。

978-7-111-43915-8-Chapter07-165.jpg

图7-59 未登录控件

页面载入时设置超级链接的NavigateURL属性代码。

(19)显示栏目页面ShowItem.aspx。该页面由一些用于导航的超级链接控件、栏目文章列表控件和二级栏目列表组成。页面载入时,首先判断是否传递有效ID,若没有则提示错误。若有有效栏目ID,则先判断栏目是否一级栏目,若是则设置超级链接控件,同时设置二级栏目列表控件可见;若不是则设置二级栏目列表控件不可见,并设置超级链接控件。

(20)栏目文章列表控件ItemArticleControl.ascx。该页面由一个超级链接、一个GridView,一个ObjectDataSource控件组成。其中ObjectDataSource的业务层对象设置为ArticleBussiness,SELECT方法设置为GetPostByItemID(Int32pItemID),参数源设置QueryString,QueryStringField设置为itemid。

页面载入时,设置HyperLink控件的Navigate属性。

(21)显示主题页面ShowPost.aspx。该页面由若干用于导航的超级链接控件、未登录提示控件、显示主题控件和回复文章控件组成,如图7-60所示。

页面载入时,首先判断文章ID是否合法,若不合法,则提示并返回首页;若合法,则使用文章业务的GetContentByID方法获取文章内容,在使用获取的栏目ID设置对应的导航控件,最后根据是否登录设置显示哪些控件和隐藏哪些控件。

(22)展示主题文章控件ShowPostControl.ascx。该控件由一个GridView和一个ObjectDataSource控件组成,ObjectDataSource控件的业务对象选择ArticleBussiness,SELECT方法选择GetArticleByPostID(Int32pPostID),参数源设置为QueryString,QueryStringField设置为postid,如图7-61所示。

978-7-111-43915-8-Chapter07-166.jpg

图7-60 显示主题页面

978-7-111-43915-8-Chapter07-167.jpg

图7-61 展示主题文章控件

(23)展示文章内容控件ShowPostByIDControl.ascx。该控件的组成如图7-62所示。

978-7-111-43915-8-Chapter07-168.jpg

图7-62 控件组成

该控件有很多属性,根据这些属性要设置对应控件的属性,单击删除按钮时,使用附件实体和文章实体来保存关于附件和文章的属性,之后调用文章业务的DeletePost方法将文章删除。

(24)发表文章页面Post.aspx。该页面由一个未登录提示控件和一个发布文章控件组成。

(25)发布文章控件PostControl.ascx。该控件组成如图7-63所示。

978-7-111-43915-8-Chapter07-169.jpg

图7-63 发布主题控件

页面载入时,首先判断栏目ID是否合法,若不合法则提示并转向首页。

单击发布按钮,设置文章实体,若有附件同时设置附件实体,上传附件并调用附件业务的AddAttachment方法保存附件URL;之后使用文章业务的AddPost方法来发布文章。

(26)修改文章页面EditPost.aspx。该页面由一个修改文章控件和一个未登录提示控件组成。

(27)修改文章控件EditPostControl.ascx。该控件的组成如图7-64所示。

978-7-111-43915-8-Chapter07-170.jpg

图7-64 修改文章控件

页面载入时,首先判断文章ID是否合法,之后使用文章实体和文章业务获取文章内容,并绑定到控件。

单击修改按钮,根据内容设置文章实体,调用文章业务的ModifyArticle方法修改内容。

(28)回复文章控件ReplyControl.ascx。该控件组成和修改文章一样。当单击回复时,使用文章业务的AddRepost方法来添加回复。

(29)显示附件页面ShowAttachment.aspx。该页面用于显示附件内容,有一个未登录提示控件,页面载入时,首先判断是否已经登录,若未登录则显示未登录控件并返回;若已登录,则判定附件ID是否合法;若不合法则提示错误并关闭页面;若合法则获取附件URL。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈