2019年5月11日 星期六

06 伺服器控制項一

HTML伺服器控制項
Web伺服器控制項

Web控制項種類、共通屬性

文字控制項:Label、Literal、TextBox、
HiddenField
#PostBack & AutoPostBack
傳送控制項:Button、ImageButton、LinkButton、
選擇控制項:CheckBox、CheckBoxList、RadioButton、RadioButtonList、ListBox、DropDownList、
多控制項的管理:順序與快速切換、
容器與Panel面板控制項

07 伺服器控制項二

Table控制項
圖片類控制項:Image、AdRotator、
Calendar控制項
導向控制項:HyperLink、ImageMap、Wizard、
分頁控制項:MultiView、View、Menu
為動態產生控制項註冊事件程序

08 驗證控制項
BaseValidator、BaseCompareValidator
RequiredFieldValidator
* 客戶端驗證
* 伺服端驗證
CompareValidator
RangeValidator
RegularExpressionValidator
CustomValidator
CausesValidation
ValidationGroup
ValidationSummary

11 網站部署與設定

11 網站部署
* 多個網站有各自ApplicationState
# App_offline.htm建立後,可產生網站離線的效果
先行編譯:aspnet_compiler.exe
- 就地先行編譯
* aspnet_compiler -v 虛擬目錄 -c
* aspnet_compiler -p 實體路徑 / -c
編譯完成後,於asp.net的temp資料夾可看到compiled的檔案
- 先行編譯再部署
* aspnet_compiler -p 來源目錄 -v / 目標目錄
Web.config組態設定檔(11-45 細看,影印)

Example 11-6 讀取Web.config內容
Dim str As String = ConfigurationManager.AppSettings("變數名")
body.Attributes("bgcolor") = str
 使用IIS管理員,新增應用程式設定值,名稱為變數名
SMTP設定
可於IIS管理員中設定,設定完成後會自動新增在Web.config中 
自行編輯Web.config
<globalization>、<urlMappings>
Example 11-7 使用urlMappings建立簡單網頁名稱對應,使用globalization使網頁符合文化特性效果

12 網站巡覽與一致性外觀
網站巡覽
SiteMapPath、Menu、TreeView、
SiteMapPath:
1、從網站導覽取得巡覽資料,網站導覽為Web.sitemap,加入新項目=>網站導覽
Web.sitemap
* <siteMap>
    <siteMapNode url="" title="" description="">
    /> 表示node的結尾
2、拖拉控制項到每一頁的最前面
3、設定樣板
4、設定屬性
Menu:
1、拖拉控制項至首頁
2、設定繫結對象
3、選擇網站導覽或XML
4、為其他頁加入控制項
5、設定屬性,如水平或垂直
搭配MultiView製作Tab分頁
1、拖拉控制項
2、新增根項目或子項目
3、設定屬性
4、撰寫Click事件
TreeView:
設定方式類似Menu控制項
亦可以用程式動態新增TreeView節點
主版頁面
頁面檔為.master
合併後的頁面,事件引發順序如下:
主版控制項Init、內容控制項Init、主版Init、內容Init、內容Load、主版Load、內容控制項Load、內容PreRender、主版PreRender、主版控制項PreRender、內容控制項PreRender
1、新增主版頁面檔
2、切換至設計模式,新增表格、於儲存格中放入ContentPlaceHoder
#顯示上線人數 Dim t As Integer = Page.Application("TotalCounter')
   建立Global.asax,於Sub Application_Start新增Application("TotalCounter")變數與Sub Session_Start新增TotalCounter計數+1
3、加入內容頁面,預設Default.aspx
第二種加入方式
1、加入新的aspx時,勾選主版頁面
# 內容頁面如何存取主版頁面控制項
    Dim ML As Object: ML=Page.Master.FindControl("控制項名")
    之後利用型別轉換將ML設為該控制項類別
巢狀主版頁面:主版頁面中有子主版頁面
指定主版頁面:方法有三
1、在指示詞中指定
2、於Page_PreInit設定Page.MasterPageFile
3、在Web.config中指定<pages masterPageFile="" />

CSS樣式表
<style type="text/css">
標籤名{樣式1:值;樣式2:值}
</style>
多重定義樣式表:指定樣式id、指定樣式class
* #id、*.class
外部樣式表:@import url("外部CSS URL") or <link type="text/css" rel="stylesheet" href="URL"/>

佈景主題
面板skin,放置於主題目錄中,類似CSS,規範元件的外觀,skin係針對控制項外觀做設定,可將控制項外觀屬性設定完成後,排除不該出現的屬性,將原始碼複製到skin中

13 雲端系統的檔案存取與上傳
伺服器檔案存取:權限、同步、效率
權限:ASPNET or NETWORK SERVICE
# 使用Windows驗證方式,在web.config的<system.web>加入<identity impersonate="true"/>
IIS7/8設定目錄修改權限給ASP.NET執行者帳戶
* 將NETWORK SERVICE勾選修改
檔案存取類別
* System.IO.File, .FileStream
* My.Computer.FileSystem (不細看、影印13-6)
* Page.Server

04 VB語法

4.2 VB2013的基礎
設定敘述
* =
註解
* '
跨行符號
* _,不可出現在雙引號內
變數
* Dim 變數名 As 資料型別 [ =初始值 ]
    Dim var1, var2, var3 As Integer
    區分大小寫 
資料型別
* Byte、Char、Object、String、Boolean、Date、Integer
常數
* Const 常數名 As 資料型別 [ =值 ]
運算子與運算式
* 算術(^次方)、字串串連(+、&、+=、&=)、比較 (數值、字串 - Like、物件 - Is、IsNot、TypeOf)
    i.e. "BZT123" Like "B?T" => True
邏輯與位元 (Not、And、Or、Xor)
型別轉換
* 自動型別轉換
* CBool、CByte、CChar、CDate、CDbl、CDec、CInt、CLng、CType、CObj、CSByte、CShort、          CSng、CStr、CUInt、CULng、CUShort
*四捨六入五成雙
4.3 流程控制
If ... Then ... End If
If ... Then ... (單行)
If ... Then ... Else ...
Select Case (...) Case1 ... Case2 ... Case Else ...End Select
* Selec Case var1
     Case Is < 60
     .....
    Case 60 To 99
     .....
    Case Else
     .....
    End Select
For Next (Step ... )
Exit For
Continue For
While ... [Exit While] [Continue While] End While
Do ... [Exit Do] [Continue Do] Loop
* Do While 。 Loop、Do Until 。 Loop、Do 。 Loop While、Do 。 Loop Until
    Until - 條件成立時離開迴圈

4.4 陣列

宣告
* Dim Trade(12 [, 2, 2] ) As Integer
    Dim arr1() As Integer = { 15, 10, 25}
長度
arr1.Length
陣列迴圈
For Each 變數 In 陣列名稱 ... Next 變數

4.5 Sub、Function
變數有效範圍
*區塊、程序、模組、命名空間


    

05 物件導向

定義類別
* [修飾字] Class 類別名稱
[繼承類別]
[實作介面]
定義屬性
定義欄位
定義建構函式
定義方法
定義其他資料
End Class

宣告物件
* Dim 物件變數 As 類別名稱
物件變數 = New 類別名稱(建構式引數)
#字串為一類別,可省略New關鍵字
繼承:關鍵字 Inherits,i.e. Inherits System.Web.UI.Page
#要讓ASP.NET的網頁有記憶資料的功能,可將資料宣告為Page類別的共用欄位,這並非好方法,較佳做法在第10章
*Private Shared num As Integer
多型與介面
* 介面與類別類似,但僅定義了欄位與方法,不提供方法細節,要讓介面產生作用,必須以某個類別實作其介面,關鍵字為Implements
命名空間
.NET Framework的類別
引入命名空間
* 於指示詞中:Import Namespace="命名空間完整名稱" or 於VB程式中:Imports 命名空間名稱
#如果類別名稱發生衝突,應該使用類別全名
傳統VB常用函式:新的命名空間中如果有定義相同函式,建議使用新命名
System的常用類別(細看:page 5-42)
* System.Object, System.String, System.DateTime, System.Random, System.Array
網頁生命週期與Page物件(細看)
共用事件程序(細看)

03 網頁程式的開發流程

3.1 開發流程
1. Problem Analysis
2. Web Map and Flowchart / Algorithm Design
3. User Interface Design
4. Coding
5. Verification
3.4 原始檔說明
指示詞
* <%@ 指示詞指令 屬性="屬性值" ..... %>
介面格式碼
* <html xmlns="http://www.w3.org/ .....">.....</html>
    <head>、<title>、<meta> .....