Day 30-ASP.NET & SQL资料库制作留言板(下)

-前集提要-

要如何把留言的资料(ASP.NET)存到资料库(MSSQL)的留言板。会使用到的工具有ASP.NETC#MSSQL

中篇的的主要步骤会分为首页显示资料表的资料建立留言内容的页面设定连结到主页设定连结到显示留言的内容建立回覆内容页面

中篇

继续接着来完成最後的步骤把留言板完成。


下篇的步骤会分为新增回应留言板的内容进SQL资料库回应留言板的标题栏位会自动显示:RE:'留言标题'显示全部回应的内容Repeater语法首页GridView表格栏位显示留言回覆数

新增回应留言板的内容进SQL资料库

到Message_Reply.aspx连点确定回应Button两下,会跳到aspx.cs页面。现在要让回应的资料存进reply的资料表内,程序如下:

回覆

语法说明QueryString["id"] : Request的一种属性,可以取得网址上「 main.aspx?id= 」 等於後面的文字,也就是留言的id,在上一篇新增HyperLink时有写入的连结。


回应留言板的标题栏位会自动显示:RE:'留言标题'

使用DataRedader将取得的资料显示出来,在Page_Load语法列内的程序码如下:

回应

编写完成试着执行看看,留言板栏位的标题有加上'RE'出现在回应标题了。

回覆

接着输入内容,检查看资料有无存进资料库,确认後确实有存进资料库了!!

资料库


显示全部回应的内容Repeater语法

现在要在Message_Main.aspx下方显示出所有回应这篇留言的回应,因为会一直往下延伸,需要使用Repeater控制项,所以先从工具箱拉出一个Repeater控制项,还有两个用来接回应留言资料的Label然後命名id,并且使用<ItemTemplate>这一语法给包住。

语法

Repeater是ASP.NET的控制项,它会重复抓取资料,简单来说在Repeater里面的控制项,会抓取资料并重复显示。接下来在Message_Main.aspx.cs的Page_Load语法列内,写入要让Repeater取得资料并显示出来的程序码:

显示

语法说明

  1. ItemTemplate:定义清单内项目的内容和配置。在Repeater样板是必要的。

  2. Repeater.DataSource:取得或设定提供资料以填入清单的资料来源。

  3. Repeater.DataBind():用来将DataSource属性所指定的资料来源系结至Repeater控制项。

这样Repeater算是与SQL资料库做系结成功了,不过要取得显示什麽资料内容,还是需要在Label内下系结语法:
Text='<%# Bind("name") %>'Text='<%# Bind("main") %>'

回覆留言成功地显示在下方了,且就算是多笔也都会出现,这就是Repeater控制项的功能。
(不过还没做回覆内容的样式排版,所以都会挤在下方 @@a)

回覆


首页GridView表格栏位显示留言回覆数

到Message_Index.aspx的设计页面,去对GridView编辑样板回应栏位的ItemTemplate从工具箱拉一个Label。
留言数

接下来,要从资料库找到回应几笔的数量,要下SQL语法:
"SELECT [id], [header], [name],[initDate] ,(select count(*) from [reply] where messageID=[message_board].id)as 回应 FROM [message_board]"

所以将command下的SQL语法改成上面SQL语法。

资料库语法

然後对回应的Label,下资料系结Text='<%# Eval("回应") %>',抓取到回应的资料。

回应

这样回应栏位就能取得该留言回应的数量了,如下图。

数量


制作到这里,大致上的留言板功能都完成了,可以留言、回应留言以及显示留言内容。剩下的样式美化跟排版,就由各位自行去探索了。

以上,感谢各位的收看。


<<:  《Day 29》【软件资料库】SQLServer 镜像建置PART 2

>>:  [Python]Natural Language Toolkit

Day27:27 - 优化 - 後端 - recaptcha 验证机制

မင်္ဂလာပါ,我是Charlie! 在Day26当中我们完成了修改密码的部分,而今天我们将加强...

策略也是需要经过验证的 - backtrader

目前基於Python的量化回测框架有很多,开源框架有zipline、vnpy和backtrader等...

Day4-Go Go Go!第一只 golang!

Hello rookie! 在经过昨天安装完环境後,相信大家已经迫不及待要写第一支程序了吧。 相信大...

Day10-使用 create-react-app 部署第一个 React static Web

承接昨天的部分 先使用 create-react-app 将原本的静态页面置换掉 $ npx cre...

Day9 在 Next.js 安装 apollo-graphql,串接 WordPress GraphQL API(上)

上一篇文章我们成功在 WordPress 安装 WPGraphQL plugin,启动了 Graph...