iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
自我挑戰組

我要努力成為軟體後端工程師!系列 第 30

Day 30-ASP.NET & SQL資料庫製作留言板(下)

  • 分享至 

  • xImage
  •  

-前集提要-

要如何把留言的資料(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-ASP.NET & SQL資料庫製作留言板(中)
系列文
我要努力成為軟體後端工程師!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言