首页 理论教育 ASP.NET应用程序设计实现

ASP.NET应用程序设计实现

时间:2023-10-21 理论教育 版权反馈
【摘要】:任务的功能实现本学习任务学习情境中描述的简单留言板的设计实现参见“教学案例\Unit03\Demo3-2”文件夹中的Default.aspx页面,其设计实现说明如下:1)留言板的显示功能设计。留言板的显示功能由一个名为sqlDply的SqlDataSource控件和一个名为grvDply的GridView控件实现。图3-15 在留言显示界面加入显示输出控件表3-14 留言显示界面相关子控件的DataBingdings属性设置●将Image控件的ImageUrl属性绑定到数据表某数据字段实现表情图像的显示。

ASP.NET应用程序设计实现

1.相关数据库定义

该留言板的数据库为Demo3-2.mdf,有LeaveWord和em两个数据表,前者保存留言及其回复信息,后者则保存留言时的表情图片的编号。

em数据表定义和LeaveWord数据表定义如表3-11和3-12所示。

表3-11 em数据表定义

978-7-111-43260-9-Chapter03-45.jpg

表3-12 LeaveWord数据表定义

978-7-111-43260-9-Chapter03-46.jpg

2.功能的设计实现

(1)设计前准备

在Visual Studio中新建网站,并做如下设计前准备工作:

1)将Demo3-2.mdf数据库文件复制到站点App_Data目录下;

2)在站点根目录下新建“Images”文件夹,将“教学案例\Unit03\images”文件夹下01.gif~08.gif等8个图片复制到新建的“Images”文件夹中。

(2)任务的功能实现

学习任务学习情境中描述的简单留言板的设计实现参见“教学案例\Unit03\Demo3-2”文件夹中的Default.aspx页面,其设计实现说明如下:

1)留言板的显示功能设计

留言板的显示功能由一个名为sqlDply的SqlDataSource控件和一个名为grvDply的GridView控件实现。

①设置sqlDply和grvDply控件相关属性。

sqlDply和grvDply控件相关属性设置如表3-13所示。

表3-13 sqlDply和grvDply控件相关属性

978-7-111-43260-9-Chapter03-47.jpg

②设置留言显示界面。

执行grvDply的智能菜单“编辑列”命令,删除grvDply控件所有自动生成的选定的字段,然后加入一个TemplateField模板字段TemplateField1。接着执行grvDply的智能菜单“编辑模板”命令,GridView控件grvDply进入模板编辑模式。选择TemplateField1对应的Column[0]模板列,继续如下操作:

●按图3-14所示的留言显示界面布局,在ItemTemplate视图中制作表格,并录入或插入相应的文字与图片(图片文件在站点的images目录下),以完成留言显示界面静态元素的制作。

978-7-111-43260-9-Chapter03-48.jpg

图3-14 留言显示界面布局

●将Label控件的Text属性绑定到数据库某数据字段实现文本数据的显示。

留言的文本数据有UserName、LeaveTime、LeaveWord、ReplyWord、ReplyTime等数据字段,与之对应,按图3-15所示的位置设置5个Label控件,并按表3-14所示设置其DataBingdings。

978-7-111-43260-9-Chapter03-49.jpg

图3-15 在留言显示界面加入显示输出控件

表3-14 留言显示界面相关子控件的DataBingdings属性设置

978-7-111-43260-9-Chapter03-50.jpg

●将Image控件的ImageUrl属性绑定到数据表某数据字段实现表情图像的显示。

如图3-15所示,在lblUserName上方加入一个Image控件imgEm,然后在控件的DataBindings对话框中将其ImageUrl属性的代码表达式设置为:

978-7-111-43260-9-Chapter03-51.jpg

●将HyperLink控件相关属性绑定到数据表某数据字段实现显示QQ和Email链接。

通过分别将HyperLink控件的Text属性和NavigateUrl属性以代码表达式的方式绑定LeaveWord数据表的相关字段,即可实现在GridView控件模板列中显示输出一个超链接。

按照如图3-15所示的位置分别加入两个HyperLink控件hypQQ和hypEmail,并按表3-15所示设置其DataBingdings。

表3-15 电子邮件和QQ链接控件的DataBingdings属性设置

978-7-111-43260-9-Chapter03-52.jpg(www.xing528.com)

2)留言的删除功能设计。

实现留言的删除操作需要做两个设置。一是设置sqlDply数据源控件的DeleteCommand属性,二是在GridView控件grvDply的Item视图中添加一个删除按钮(如图3-16所示,在电子邮件链接右侧加入一个名为lnkDel的LinkButton按钮)。

978-7-111-43260-9-Chapter03-53.jpg

图3-16 添加了删除和回复按钮的留言显示界面

sqlDply控件的DeleteCommand属性和grvDply控件lnkDel按钮属性设置如表3-16所示。

表3-16 sqlDply和grvDply控件相关属性

978-7-111-43260-9-Chapter03-54.jpg

3)留言的回复功能设计。

留言的回复分3步设计。第一步是设置sqlDply的UpdateCommand属性(因为所谓回复留言实际上就是修改当前留言的ReplyWord字段和ReplyTime字段);第二步是在grvDply控件的Item视图中加入一个名为lnkUpdate的LinkButton编辑按钮,以便grvDply控件从Item视图切换到EditItem视图;第三步是在grvDply控件的EditItem视图中设计留言回复界面。

留言回复界面的具体设计如图3-17所示。将图3-15所示的grvDply控件Item视图中除lblReplyWord和lblReplyTime两Label控件外的所有内容整体复制到grvDply控件EditItem视图,然后进行如下操作。

①在表格第2行第2单元格中加入一个名为txtReply的多行TextBox控件,然后通过双向绑定的方式将控件的Text属性绑定到留言的ReplyWord字段,其绑定的代码表达式为:

978-7-111-43260-9-Chapter03-55.jpg

②在txtReply的多行TextBox控件下方添加“回复”和“返回”按钮,控件名分别为lnkReply和likCancel。

上述各控件相关属性设置如表3-17所示。

978-7-111-43260-9-Chapter03-56.jpg

图3-17 留言回复界面

表3-17 留言的回复功能各控件相关属性设置

978-7-111-43260-9-Chapter03-57.jpg

4)发表留言功能设计。

①发表留言界面设计

发表留言功能可以通过DetailsView控件的模板字段技术实现。加入一个发表留言的DetailsView控件dtilInsert及其绑定的数据源控件sqlInsert,接着在显示留言的grvDply控件上方添加一个“Button”按钮“btnDeliver”。当单击“btnDeliver”按钮,隐藏显示留言界面(grvDply控件)并显现发表留言界面(dtilInsert控件)。

由于仅仅使用DetailsView控件发表留言,因此仅需要设计其InsertItemTemplate即可,相应地将DetailsView控件的DefaultMode属性设置为Insert。

发表留言功能设计界面如图3-18所示,相应的控件及其属性设置如表3-18所示。

978-7-111-43260-9-Chapter03-58.jpg

图3-18 留言界面

表3-18 实现留言回复功能各控件相关属性设置

978-7-111-43260-9-Chapter03-59.jpg

表3-18中rblstEm为RadiobuttonList控件,该控件的作用是通过sqlEm数据源控件绑定到em数据表并读取每个表情图片的em编号。选择其中某个单选钮后,读取其SelectedValue可获取一个具体的em表情编号,提交留言时,则须将该em表情编号写入LeaveWord数据表的em字段,因此将rblstEm控件的SelectedValue属性双向绑定到LeaveWord数据表的em字段,绑定表达式为Bind(“em”)。

②响应事件。

●响应留言显示界面中的btnDeliver“发表留言”按钮的Click事件,从显示留言界面

进入发表留言界面,其事件函数如下:

978-7-111-43260-9-Chapter03-60.jpg

978-7-111-43260-9-Chapter03-61.jpg

●响应dtilInsert控件的ModeChanged事件使得留言板从发表留言界面返回显示留言界面。单击发表留言界面中的lnkCancel“取消”按钮,将激发dtilInsert控件的ModeChanged事件。因此,为了使得留言板从发表留言界面返回显示留言界面,可以响应该ModeChanged事件,其事件函数如下:

978-7-111-43260-9-Chapter03-62.jpg

●响应dtilInsert控件的ItemInserted事件,返回并刷新留言显示界面。单击留言发表界面中的lnkSubmit“提交留言”按钮发表留言后,显示留言的grvDply控件不会随之刷新,需要响应dtilInsert控件的ItemInserted事件,将grvDply控件重新绑定到其数据源控件,其事件函数如下:

978-7-111-43260-9-Chapter03-63.jpg

至此,本学习任务描述的留言板设计基本完成。

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

我要反馈