首页 理论教育 ASP.NET应用程序开发技术:设计与实现

ASP.NET应用程序开发技术:设计与实现

时间:2023-10-21 理论教育 版权反馈
【摘要】:任务的功能实现本学习任务学习情境中描述的某论坛新增用户ID检测功能模块、“出生日期”选择功能修改及“所在地”选择功能修改的实现参见“教学案例\Unit08\Demo8-1\Account”文件夹中的Regedit.aspx页面,其设计实现说明如下。为实现单击检测用户名的LBJC控件时,应用程序会检测TxtLoginId控件内的内容,并将检测结果显示在LbMessage控件内,需响应LBJC控件的Click事件。

ASP.NET应用程序开发技术:设计与实现

1.相关数据库定义

根据需求,该功能模块相关的Demo8-1.mdf数据库中数据表UserInfors用于保存论坛用户信息;ProvincesInfo用于保存省份信息;CitiesInfo用于保存城市信息。

UserInfors数据表、ProvincesInfo数据表和CitiesInfo数据表定义如表8-3至8-5所示。

表8-3 UserInfors数据表定义

978-7-111-43260-9-Chapter08-12.jpg

表8-4 ProvincesInfo数据表定义

978-7-111-43260-9-Chapter08-13.jpg

表8-5 CityInfo数据表定义

978-7-111-43260-9-Chapter08-14.jpg

2.功能的设计实现

(1)设计前准备

使用VS2010新建网站,将Demo8-1.mdf数据库文件复制到站点App_Data目录下。在网站根目录下创建三个新的文件夹,分别命名为:Account、Images及UpLoad。将设计网站界面所需的图片素材放置在Images文件夹中;在Account文件夹中创建一个Web窗体文件,重命名为Regedit.aspx。

(2)任务的功能实现

学习任务学习情境中描述的某论坛新增用户ID检测功能模块、“出生日期”选择功能修改及“所在地”选择功能修改的实现参见“教学案例\Unit08\Demo8-1\Account”文件夹中的Regedit.aspx页面,其设计实现说明如下。

1)页面设计。

打开Regedit.aspx文件,在页面顶端设置一个ScriptManager控件,在TxtLoginId控件所在的单元格放置一个UpdatePanel控件,将TxtLoginId控件移动到UpdatePanel控件内,同时在其右侧放置一个LinkButton控件用于检测用户是否存在,放置一个Label控件用于显示检测结果;为了实现当用户用DLProvin控件选择某一个省份时,DLCity控件中会出现相应的城市信息,需要在DLProvin和DLCity控件所在的单元格放置一个UpdatePanel控件,将DLProvin和DLCity控件移动到UpdatePanel控件内,同时清空DLProvin和DLCity控件Items属性值,并修改DLProvin控件的相关属性;在页面<head></head>部分添加引用脚本文件,并为TxtDate控件添加CssClass和onFocus属性,用于当用户单击TxtDate控件右侧的“日期”图标时,能自动调用客户端脚本实现日期的显示、选择与填充。Regedit.aspx页面修改后的效果如图8-4所示。

978-7-111-43260-9-Chapter08-15.jpg

图8-4 某论坛修改后的用户注册功能模块界面设计

Regedit.aspx页面新增控件的属性设置如表8-6所示。

表8-6 Regedit.aspx页面新增控件相关属性设置

978-7-111-43260-9-Chapter08-16.jpg

2)配置数据库连接字符串。

打开站点根目录下的Web.Config文件,添加<connectionStrings>配置节点,并将数据库连接字符串信息写入节点内。配置节点代码如下。

978-7-111-43260-9-Chapter08-17.jpg

3)自定义对象。

用户注册、用户名检测、DLProvin和DLCity下拉列表框的数据显示都经常需要连接数据库服务器,为此自定义一个数据库连接对象Conn方便Regedit.aspx页面内的方法或事件调用。

Conn对象的定义如下:(www.xing528.com)

978-7-111-43260-9-Chapter08-18.jpg

4)自定义方法。

用户名检测、DLProvin下拉列表框中“省份”及DLCity下拉列表框中“城市”的显示都需要查询数据库表。不同的是用户名检测查询的是单条记录,“省份”及“城市”的显示查询的是多条记录,为此分别定义GetReader(stringsafeSql)和GetDataSet(string safeSql)方法用于检索记录,方便Regedit.aspx页面内其他方法或事件调用。

GetReader(string safeSql)方法的定义如下:

978-7-111-43260-9-Chapter08-19.jpg

➢GetDataSet(string safeSql)方法的定义如下:

978-7-111-43260-9-Chapter08-20.jpg

978-7-111-43260-9-Chapter08-21.jpg

5)事件响应。

①用户名检测。

为实现单击检测用户名的LBJC控件时,应用程序会检测TxtLoginId控件内的内容,并将检测结果显示在LbMessage控件内,需响应LBJC控件的Click事件。

➢LBJC控件的Click事件如下:

978-7-111-43260-9-Chapter08-22.jpg

②所在地的“省份”和“城市”显示。

在页面初载的时候,DLProvin下拉列表框需显示可供用户选择的“省份”;当用户选择了某一“省份”,DLCity下拉列表框会自动显示与该省份相应的城市。因此,需调用Regedit.aspx页面的Page_Load事件和响应DLProvin控件的SelectedIndexChanged事件。

➢Regedit.aspx页面的Page_Load事件如下:

978-7-111-43260-9-Chapter08-23.jpg

978-7-111-43260-9-Chapter08-24.jpg

➢DLProvin控件的SelectedIndexChanged事件如下:

978-7-111-43260-9-Chapter08-25.jpg

③用户注册。

为实现单击“注册”按钮,能将用户信息添加入数据库的UserInfors表中,需响应IBRegedit控件的Click事件。

➢IBRegedit控件的Click事件如下:

978-7-111-43260-9-Chapter08-26.jpg

978-7-111-43260-9-Chapter08-27.jpg

至此,本学习任务描述的某论坛注册模块新增功能及相关功能改进基本完成。

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

我要反馈