當將form裡面的資料post回server端,且處理這個form的資料的URL,都由同一個頁面來進行處理,我們稱為PostBack。PostBack運作流程
、IsPostBack
介紹。
接著要來介紹範例實作了,這次就用留言板範例當作這次的結尾。
因為篇幅較大,製作留言板分成三篇來解說,要如何把留言的資料(ASP.NET)存到資料庫(MSSQL)的留言板。
會使用到的工具有ASP.NET
、C#
、MSSQL
。
上篇的主要步驟為創立SQL資料庫
→ ASP.NET新專案,建立Web form專案
→ 加入連接字串
→ 編輯資料行
→ 開啟GridView內的TemplateField放個HyperLink
→ 新增留言頁面製作
→ 將留言的資料傳入資料庫
→ 留言空格設置不能為空白內容
。
開始來講解步驟嚕!
想想看,留言板的會有哪些內容需要存進到資料庫??
會存進資料庫的資料就只有留言的內容
及回覆的內容
,因此要先創出留言板資料庫
及兩個資料表
,一個存放留言
另一個則存放回覆內容
。如下圖所示。
需要做的步驟:
1.建立SQL資料庫表單,且命名(自行設定),範例名稱是message_board
2.留言板的資料表:message_board
3.回覆留言資料表:Reply
4.都建立好後,在把兩個資料表主索引的線給拉好。
主索引鍵與外部索引鍵,說明參考
資料庫&資料表的名稱大小寫,會需要注意(後續編寫C#時,需要一樣,否則會偵錯)
到這邊,第一步驟的創立SQL資料庫
就算完成了。
首先要先建立C#環境,才能開始編寫程式。
再來要加入兩個Web表單,乘客留言板首頁(Message_Index)和新增留言(Message_Add)的頁面。
接著加入連接字串
,先到Message_Index的設計模式
,從側邊欄的工具箱拉一個Button
並將Text改成我要留言
和一個GridView
及SqlDataSource
。
(後面的美化樣式語法,請先忽略)
接下來對SqlDataSource
設定資料來源,新增連接字串,新增方法可參考ASP.NET與資料庫的聯繫,選擇message_board資料表
並全選全部欄位按確定。最後確認Web.config
有沒有出現連接字串。
再來就是要編輯GridView的資料行
,因為首頁顯示的留言資訊有編號跟回應且沒有顯示id跟留言內容,所以再GridView與SqlDataSource資料繫結後需要新增及刪除幾個欄位。選擇資料來源後,對GridView右上角的箭頭按編輯資料行,將不要的欄位打「X」
並且加入兩個TemplateField
,並將欄位名稱改名(選取欄位在HeaderText做更改),使用上下箭頭來排列欄位位置,按下確定就完成了。
接下來在編號欄位裡面使用行號索引:Container.DataItemIndex
,讓編號可以依序遞增,索引從0開始所以必須要+1。
再來要在TemplateField放HyperLink
,在留言板首頁,主題是有個超連結可以點擊的,所以必須將主題欄位放置一個HyperLink工具
。
先對GridView右上角箭頭點開選編輯資料行
,將主題轉換為TemplateField
(點擊主題按右邊藍色的「將這個欄位轉換為TemplateField」),轉換成TemplateField就可以讓我們放置控制物件。
接下來按確定後,再到編輯樣板的頁面(一樣GridView右上角箭頭點開),在下拉式選單中找到剛剛已經設定好的主題欄位,並將原本預設的Label刪掉並切放一個HyperLink,可直接從工具拖曳過去。
接著對GridView結束樣板編輯,因為主題點開的那一個Web還沒有創立,所以之後再做連結。
然後再來是是將GridView1的選擇資料來源從SqlDataSource1改成無
,跳出來的視窗記得按否
,接著再把SqlDataSource清除。
以上的步驟都建立好後,Message_Index.aspx的畫面應該會是這樣
接下來要做留言的頁面了!
對著我要留言的Button
點擊兩下,最自動跳到Message_Index.aspx.cs,直接貼上跳轉頁面的方法,讓使用者在點擊Button後會自動跳到Message_Add的頁面。
就是這段語法:Response.Redirect("Message_Add.aspx");
Response
是由Server回傳給Browser的物件,而Redirect()
是一種跳轉到其他頁面的方法。
接下來到Message_Add.aspx建立TextBox,要有標題
、暱稱
、內容
三個以及一個送出的Button
及一個重新填寫的input
,都在側邊的工具箱內。
然後將內容的TextBox右鍵屬性,textMode選MultLine就可以將TextBox向下拉,然後可以順便設定寬與高。
將基本的工具拉好後,接著快速點擊「確定留言」的Button到Message_Add.aspx.cs頁面。
並將留言的資料傳入資料庫的程式碼打上,程式碼如下:
留言時當然不能有任何的TextBox是空白的,所以在HTML5的TextBox有很多屬性可以使用,可將TextBox設定成必須填寫,且還可設定彈沒填寫時會跳出來的提醒文字。請將以下程式碼貼在TextBox內:
1.設定為必填的屬性是:required=""
和 aria-required="true"
2.彈跳出內容的文字是可以客製化的,需使用:oninvalid="setCustomValidity('文字內容')"
3.清除彈跳文字的紀錄:oninput="setCustomValidity('');"
若沒使用這行,假如有跳出警告文字,將清除不掉會一直出現X
下一篇會繼續完成其它留言板功能,首頁顯示
留言版以及主題內容
。