Views: 6
這篇是作為入門,我們邊做邊學
設備
安裝好Windows 的電腦一台,記憶體至少16GB,建議32GB以上,作業系統建議Windows 11 專業版
軟體
- Visual Studio 2022,社群版、專業版、企業版都可以,建議使用社群版就好
 - SQL SERVER DEVELOP開發版
 - SSMS
 
任務需求說明
- 主旨:建立一個活動報名網站
 - 角色:
- 報名者,填寫報名表
 - 管理者,查看名單,修改報名單、刪除報名單。
 
 - 活動報名流程
- 填寫報名資料>送出>系統驗證是否已經報名過了
 - 已經報名:「顯示已經報名過了,請勿重複報名。」
 - 尚未報名:「顯示報名成功。」
 
 - 報名單欄位
- 姓名
 - 性別(男女其他)
 - 生日(西元年月日)
 - 身分證字號(10碼)
 - 信箱
 - 電話
 - 飲食(葷食、素食)
 - 活動場次(三個日期單選):1月場次 2月場次 3月場次
 
 - 隱藏欄位
- 報名時間
 - 最後修改時間
 - 最後修改人
 - 已繳費註記
 - 管理者備註
 - 刪除標記
 
 
管理者流程
登入系統 > 報名者列表>
- 修改報名資料
 - 檢視報名資料
 - 刪除
 
報名者列表欄位
- 功能(編輯、檢視、刪除)
 - 姓名
 - 性別
 - 報名時間
 - 繳費
 
網站目錄規劃
\Admin\Admin.aspx管理頁\Admin\Login.aspx登入頁\Admin\Edit.aspx編輯資料\Admin\View.aspx檢視資料Regist.aspx報名頁面Default.aspx首頁:活動說明、介紹\Image\圖片目錄:活動說明用到的圖片
Visual Studio 2022 新建專案
網站的結構
(方案底下可已有很多個專案)
網站目錄說明
App_Data網站文件資料放這,實際發佈時候不會放上去App_Start網站一啟動時要執行的背景程式寫在這,這堂課我們用不到Content網站的CSS檔放這Script網站的js檔放這About.aspx關於我Contact.aspx聯絡資訊Default.aspx網站的首頁favicon.ico網站的小圖示,可以換成自己喜歡得Global.asax也是網站一起動要執行的程式,會先執行這邊,接著才執行App_Start內的Site.Master網站的Master Page ,用於統一網站樣式(上方選單navbar/下方footer)SiteMobile.Master網站的Master Page(行動版),這個練習用不到。ViewSwitcher.ascx切換行動版跟電腦版,這個練習用不到web.config網站設定、資料庫連線、站台設定
裡面比較重要的檔案有,MasterPage 、Web.config
新增報名頁面 Regist.aspx
我們先來寫報名頁面畫面的部分,首先先來新增一個Regist.aspx
點選在專案>按滑鼠右鍵>加入Add > 新增項目 Add New Item
點選「顯示所有範本(Show All Templates)」
點選「使用主版頁面的Web Form」Webform with Master Page,名稱填入「Regist.aspx」 > 「新增」 Create
選Site.Master 這個MasterPage,然後按下「確定」。
我們在Regest.aspx先來新增
- 頁面標題
<h1>報名</h1> - 姓名欄位名稱
<asp:Label ID="lbName" runat="server" Text="Label">姓名</asp:Label> - 姓名欄位
<asp:TextBox ID="tbName" runat="server"></asp:TextBox> 
注意要寫在
<asp:Content></asp:Content>內,如下圖
程式碼:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="PartyRegister.Regist" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1>報名</h1>
    <asp:Label ID="lbName" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
</asp:Content>
頁面標題
頁面標題<h1>報名</h1>,會用<h1>~<h3>標籤為主
asp:Lable標籤
<asp:Label ID="lbName" runat="server" Text="姓名"></asp:Label>
- tag名稱 
asp:Label這是ASP Webform的Lable標準寫法 - ID屬性 
ID="lbName",每個ASP的元件都要給一個ID,[型別縮寫+名稱]命名方式算是早期程式設計留下的傳統,這種命名方式稱為匈牙利命名法,前面的lb表示label型別,Name是實際名稱,讓人一眼看出lbName是指姓名的Label元件。 runat="server"代表可以被伺服器端控制,多數情況這樣寫
asp:TextBox標籤
<asp:TextBox ID="tbName" runat="server"></asp:TextBox>
- tag名稱 
asp:TextBox這是ASP Webform的TextBox標準寫法 ID="tbName"每個ASP的元件都要給一個ID,傳統上常用tb或txt縮寫代表textbox,至於要用哪一種,看公司規定,公司沒規定就看自己習慣。runat="server"代表可以被伺服器端控制,多數情況這樣寫就好
執行看看
測試自己寫的結果就是按下最上面的按鈕(開始偵錯),熱鍵是F5
接著不用停止偵錯,我們先整理一下畫面上需要什麼
整理報名表單上的欄位
- 姓名 
TextBox標籤lbName輸入框tbName - 性別(男女其他)
RadioButtonList標籤lbGender輸入框rbGender - 生日(西元年月日)
TextBox標籤lbBirthday輸入框tbBirthday - 身分證字號(10碼)
TextBox標籤lbROCID輸入框tbROCID - 信箱 
TextBox標籤lbEmail輸入框tbEmail - 電話 
TextBox標籤lbPhone輸入框tbPhone - 飲食(葷食、素食)
標籤RadioButtonListlbFood輸入框rbFood - 活動場次(三個日期單選):1月場次 2月場次 3月場次 
RadioButtonList標籤lbEventId輸入框rbEventId - 送出按鈕
Button btnSubmit 
說明:
- 除了送出按鈕以外,每一個都需要一個欄位標籤
 - 中華民國身分證字號欄位命名慣用
ROCID - 元件命名規則先訂這樣
- 標籤
lb開頭 - 文字輸入
tb開頭 - 單選
rd開頭 - 按鈕
btn開頭 
 - 標籤
 
接下來我們學習建立RadioButton
邊寫邊看成果
接下來寫的時候不需要停止偵錯,我們寫的節奏會變成
- 新增一組標籤
 - 存檔
 - 重新整理頁面
 
寫一點,就看一下成果
性別欄位 RadioButtonList
以前的性別欄位只有男女,現在的性別欄位選項多很多,不過在這個專案我們只用男/女/其他這三種就好
加入RadioButtonList,之前講解過的部分我會直接省略
asp:RadioButtonList代表寫的是一群RadioButtonRepeatDirection="Horizontal"排列方向,Horizontal代表要水平排列<asp:ListItem Text="選項顯示文字" value="選項的值"></asp:ListItem>
我有加上<br/> 讓標籤不會黏在上面
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="PartyRegister.Regist" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1>報名</h1>
    <asp:Label ID="lbName" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
    <br/>
    <asp:Label runat="server" ID="lbGender" Text="性別"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbGender" RepeatDirection="Horizontal">
        <asp:ListItem Text="男" Value="1"></asp:ListItem>
        <asp:ListItem Text="女" Value="2"></asp:ListItem>
        <asp:ListItem Text="其他" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
</asp:Content>
依樣畫葫蘆,補上剩下的報名欄位
程式需要用到的大部分我們都教了(?),把其他的補上
姓名(已完成)TextBox標籤lbName輸入框tbName性別(男女其他)(已完成)RadioButtonList標籤lbGender輸入框rbGender- 生日(西元年月日)
TextBox標籤lbBirthday輸入框tbBirthday - 身分證字號(10碼)
TextBox標籤lbROCID輸入框tbROCID - 信箱 
TextBox標籤lbEmail輸入框tbEmail - 電話 
TextBox標籤lbPhone輸入框tbPhone - 飲食(葷食、素食)
標籤RadioButtonListlbFood輸入框rbFood - 活動場次(三個日期單選):1月場次 2月場次 3月場次 
RadioButtonList標籤lbEventId輸入框rbEventId - 送出按鈕
Button btnSubmit 
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="PartyRegister.Regist" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1>報名</h1>
    <asp:Label ID="lbName" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
    <br/>
    <br/>
    <asp:Label runat="server" ID="lbGender" Text="性別"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbGender" RepeatDirection="Horizontal">
        <asp:ListItem Text="男" Value="1"></asp:ListItem>
        <asp:ListItem Text="女" Value="2"></asp:ListItem>
        <asp:ListItem Text="其他" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
    <br/>
    <asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbPhone" runat="server" Text="聯絡電話"></asp:Label>
    <asp:TextBox ID="tbPhone" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbBirthday" runat="server" Text="生日"></asp:Label>
    <asp:TextBox ID="tbBirthday" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbROCID" runat="server" Text="身分證字號"></asp:Label>
    <asp:TextBox ID="tbROCID" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbEmail" runat="server" Text="信箱"></asp:Label>
    <asp:TextBox ID="tbEmail" runat="server"></asp:TextBox>
    <br/>
    <br/>
    <asp:Label runat="server" ID="lbFood" Text="飲食"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbFood" RepeatDirection="Horizontal">
        <asp:ListItem Text="葷" Value="1"></asp:ListItem>
        <asp:ListItem Text="素" Value="2"></asp:ListItem>
        <asp:ListItem Text="其他" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
    <br/>
    <asp:Label runat="server" ID="lbEventId" Text="活動場次"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbEventId" RepeatDirection="Horizontal">
        <asp:ListItem Text="1月份" Value="1"></asp:ListItem>
        <asp:ListItem Text="2月份" Value="2"></asp:ListItem>
        <asp:ListItem Text="3月份" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
</asp:Content>
小技巧,我會直接複製已有元素 label+textbox 然後貼上,再改id跟文字,這樣速度會快很多。
做好應該如圖,然後建議新手先自己key….不要直接複製貼上
我程式碼忘記放電話欄,後來補上,圖片我就沒更新了
加入送出按鈕
目前這個頁面的進度:
姓名(已完成)TextBox標籤lbName輸入框tbName性別(男女其他)(已完成)RadioButtonList標籤lbGender輸入框rbGender生日(西元年月日)(已完成)TextBox標籤lbBirthday輸入框tbBirthday身分證字號(10碼)(已完成)TextBox標籤lbROCID輸入框tbROCID信箱(已完成)TextBox標籤lbEmail輸入框tbEmail電話(已完成)TextBox標籤lbPhone輸入框tbPhone飲食(葷食、素食)(已完成)標籤RadioButtonListlbFood輸入框rbFood活動場次(三個日期單選):1月場次 2月場次 3月場次(已完成)RadioButtonList標籤lbEventId輸入框rbEventId- 送出按鈕
Button btnSubmit 
送出按鈕長這樣
程式碼:
<asp:Button ID="btnSubmit" CssClass="btn btn-primary" Text="送出報名" runat="server"/>
說明:
- 送出按鈕我們還沒有指定按下去要做什麼,所以按下去沒反應是正常的
 CssClass="btn btn-primary"這個是指定html tag中的class,在asp語言上要寫成CssClass,而"btn btn-primary"是 bootstrap的按鈕樣式 參考資料
完整的程式碼:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Regist.aspx.cs" Inherits="PartyRegister.Regist" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1>報名</h1>
    <asp:Label ID="lbName" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
    <br/>
    <br/>
    <asp:Label runat="server" ID="lbGender" Text="性別"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbGender" RepeatDirection="Horizontal">
        <asp:ListItem Text="男" Value="1"></asp:ListItem>
        <asp:ListItem Text="女" Value="2"></asp:ListItem>
        <asp:ListItem Text="其他" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
    <br/>
    <asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbPhone" runat="server" Text="聯絡電話"></asp:Label>
    <asp:TextBox ID="tbPhone" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbBirthday" runat="server" Text="生日"></asp:Label>
    <asp:TextBox ID="tbBirthday" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbROCID" runat="server" Text="身分證字號"></asp:Label>
    <asp:TextBox ID="tbROCID" runat="server"></asp:TextBox>
    <br/>
    <asp:Label ID="lbEmail" runat="server" Text="信箱"></asp:Label>
    <asp:TextBox ID="tbEmail" runat="server"></asp:TextBox>
    <br/>
    <br/>
    <asp:Label runat="server" ID="lbFood" Text="飲食"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbFood" RepeatDirection="Horizontal">
        <asp:ListItem Text="葷" Value="1"></asp:ListItem>
        <asp:ListItem Text="素" Value="2"></asp:ListItem>
        <asp:ListItem Text="其他" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
    <br/>
    <asp:Label runat="server" ID="lbEventId" Text="活動場次"></asp:Label>
    <asp:RadioButtonList runat="server" ID="rbEventId" RepeatDirection="Horizontal">
        <asp:ListItem Text="1月份" Value="1"></asp:ListItem>
        <asp:ListItem Text="2月份" Value="2"></asp:ListItem>
        <asp:ListItem Text="3月份" Value="3"></asp:ListItem>
    </asp:RadioButtonList>
    <asp:Button ID="btnSubmit" CssClass="btn btn-primary" Text="送出報名" runat="server"/>
</asp:Content>
完整頁面:
目前還醜醜的,不過我們這系列教學先以把功能做出來為主
				
0 Comments