2011年10月24日 星期一

Textbox 控制項:文字輸入方塊,以簡易購物計算為例

◎以上程式範例AspNet01.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

Partial Class AspNet01
    Inherits System.Web.UI.Page
    ' ===== 本例是針對Textbox控制項作一個簡單的範例,另外還有大約了解一下網頁生命週期,以及事件引發順序 =====

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' ===== Page_Load事件 =====
        Response.Write("輸入數字,進行計算,結果會以「貨幣」格式出現")
        Me.Label1.Text = "只要更動「加數」,就會自動計算,只更動「被加數」那就要按一下「開始計算」的按鈕"
        Me.Button1.Text = "開始計算"
    End Sub

    Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
        ' ===== Page_PreInit事件,在網頁的生命週期中較Page_Load事件早,雖然「寫」在Page_Load()的下方, =====
        ' Page_PreInit()是一般建立或重新建立動態控制項的階段,
        ' 所以這裡「故意」把Textbox的屬性調整寫在Page_PreInit事件中
        ' 當然屬性的調整若不需動態的變化,其實可以直接使用Visual Studio的控制項屬性視窗來調整

        Me.TextBox1.TextMode = TextBoxMode.SingleLine ' 單列文字類似傳統html表單的<input type="text">
        Me.TextBox2.TextMode = TextBoxMode.Password   ' 密碼文字,輸入會以「*」遮蔽以免被窺視
        Me.TextBox3.TextMode = TextBoxMode.MultiLine  ' 多列文字類似傳統html表單的<textarea>...</textarea>
        Me.Label2.Text = ""

        ' AutoPostBack是所有控制項都具備的屬性,表示控制項內容只要被更動就會自動提交資料
        Me.TextBox4.AutoPostBack = False
        Me.TextBox5.AutoPostBack = True

        ' EnableViewState也是所有控制項所具有的屬性,表示當資料提交後是不是要清空所填寫的資料
        Me.TextBox4.EnableViewState = True
        Me.TextBox5.EnableViewState = True

    End Sub

    Protected Sub TextBox5_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
        ' ===== TextChanged 事件表示當Textbox內容改變時引發的事件 =====
        ' ===== 這個事件一定要和 AutoPostBack 屬性合用才會生效=====
	
        ' 因為ASP.NET已經轉變成物件導向的語言,所以要用「取得」該控制項的Text,就要寫成「Textbox控制項的ID名稱.Text」
        ' Textbox原來定義內容是string, Cint() 是強制轉換控制項成整數型態
        Dim sum As Integer = CInt(Me.TextBox4.Text) + CInt(Me.TextBox5.Text)

        ' 將sum這個變數轉成貨幣格式,也可以寫成
        ' Me.Label2.Text = String.Format("{0:NT$ #,### ; -NT$ #,###}", sum)
        Me.Label2.Text = String.Format("{0:C}", sum)

    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' ===== Click 事件表示當Button按下時引發的事件 =====

        ' Textbox原來定義內容是string, Cint() 是強制轉換控制項成整數型態
        Dim sum As Integer = CInt(Me.TextBox4.Text) + CInt(Me.TextBox5.Text)

        ' 將sum這個變數轉成貨幣格式,也可以寫成
        Me.Label2.Text = String.Format("{0:NT$ #,### ; -NT$ #,###}", sum)
        ' Me.Label2.Text = String.Format("{0:C}", sum)
    End Sub
End Class

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...
// Dnow Function