移動控件介紹及詳細使用方法(看了這些你就基本會wap開發了)
在以前學習的有關ASP.NET 和 Web 窗體的知識可以幫助您快速地使用移動控件來構建移動 Web 應用程序。現在我們就開始ASP.NET 移動控件的學習之旅吧。
AdRotator控件
AdRotator 移動控件和傳統的ASP.NET程序中的AdRotator控件是非常類似的。該控件的主要功能是用來隨機並循環顯示一組廣告橫幅。AdRotator控件會自動進行循環處理,每刷新一次頁面就隨機地改變顯示內容。我們還可以對廣告進行優先級控制,從而使得某些廣告的顯示頻率高於其他廣告。當然你也可以使用自定義邏輯來循環顯示廣告。
AdRotator移動控件提供了一些非常重要的屬性,這樣就可以設置廣告的一系列信息,包括廣告圖片的路徑和圖片的鏈接等。下表列舉的則是AdRotator移動控件的一些重要屬性:
屬性 說明
AdvertisementFile
獲取或設置包含廣告數據的XML文件的路徑。該廣告文件包括一系列基於XML格式的廣告信息,例如Image URL、Navigate URL、Impressions、StartDate和EndDate等屬性
ImageKey 返回廣告文件中檢索到的Image URL的元素名
NavigateUrlKey 獲取或設置廣告文件中檢索到的Navigate URL的元素名
清單1顯示的是AdRotator移動控件的基於XML的廣告配置文件。我們可以通過該配置文件為一個AdRotator移動控件設置兩幅圖片,然後在頁面加載時隨機地顯示出廣告圖片。Impressions節點表示圖片顯示的機率,如天極網絡的機率為2000/2000+1000=2 /3。StartDate、EndDate表示圖片顯示的開始和結束日期。
清單1:廣告配置文件 AdRotator.xml
< ?xml version="1.0" encoding="utf-8" ?>
< Advertisements>
< Ad>
< ImageUrl>images/yesky.gif< /ImageUrl>
< NavigateUrl>http://www.yesky.com< /NavigateUrl>
< AlternateText>天極網絡< /AlternateText>
< Keyword>Community Leader< /Keyword>
< Impressions>2000< /Impressions>
< StartDate>5/19/05< /StartDate>
< EndDate>7/18/05< /EndDate>
< /Ad>
< Ad>
< ImageUrl>images/sina.gif< /ImageUrl>
< NavigateUrl>http://www.sina.com< /NavigateUrl>
< AlternateText>新浪網< /AlternateText>
< Keyword>User Group< /Keyword>
< Impressions>1000< /Impressions>
< StartDate>5/30/05< /StartDate>
< EndDate>7/5/05< /EndDate>
< /Ad>
< /Advertisements>
現在我們可以使用AdRotator移動控件顯示XML文件中的廣告信息,你只需設置AdRotator移動控件的AdvertisementFile屬性為清單1的AdRotator.xml文件即可。
清單2:AdRotatorDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="AdRotatorDefault.aspx.cs" Inherits="AdRotatorDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">
< mobile:AdRotator ID="AdRotator1" Runat="server" AdvertisementFile="~/AdRotator.xml">
< /mobile:AdRotator>
< /mobile:Form>
< /body>
< /html>
Calendar控件
Calendar(日歷)控件通常是用來實現日期的選擇功能,你可以從工具箱拖拽一個Calendar控件到移動WEB Form控件上。Calendar控件在默認狀態下通常顯示當前月,如果要改變默認的顯示日期的話,你可以設置Calendar控件的 VisibleDate屬性。還有一個重要的屬性就是SelectedDate,它可以在Calendar控件上選定一個指定的日期。
SelectionMode 屬性用來獲取或設置Calendar控件的日期選擇模式。默認的設置為Day,這樣用戶就可以在 Calendar 控件上選擇單個日期。你還可以設置該屬性的日期選擇模式為DayWeek或DayWeekMonth。DayWeek設置允許用戶在Calendar控件上選擇選擇單日或整周,DayWeekMont設置允許用戶在Calendar控件上選擇單個日期、周或整月。你可以在設計階段更改這些設置,也可以在運行時通過代碼更改這些設置。當用戶改變了當前選中的日期時,將會激發一個Calendar控件中的SelectionChanged事件。下表是 Calendar控件的一些常見屬性:
屬性 說明
FirstDayOfWeek 在日歷的第一列中顯示一周中的某一天
SelectionMode 該屬性允許用戶將日歷控件的選擇模式設置為單個日期、周或整月。該屬性的枚舉值為:None、Day、DayWeek和 DayWeekMonth.
SelectedDate 該屬性用來獲取或設置當前選定的日期。我們可以在設計階段設置該屬性值,也可以在運行時改變該值。
VisibleDate 指定要顯示月份的日期,移動設備默認狀態下將會直接在當前的屏幕中顯示該日期。所以該屬性和SelectedDate是截然不同的。
現在我們來用Calendar 控件實現一個簡單功能。當用戶在Calendar控件中選取了一個日期後,該日期將會在一個文本框中進行顯示。
清單3:CalendarDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="CalendarDefault.aspx.cs" Inherits="CalendarDefault" EnableViewState="true"%>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">事件日期< br />
< mobile:TextBox id="txtEventDate" runat="server">< /mobile:TextBox>
< mobile:Calendar id="EventCalendar" FirstDayOfWeek="Sunday" Runat="server"
OnSelectionChanged="EventCalendar_SelectionChanged">
< /mobile:Calendar>
< /mobile:Form>
< /body>
< /html>
清單4:CalendarDefault.aspx.cs
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.Mobile;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public partial class CalendarDefault : System.Web.UI.MobileControls.MobilePage
{
//當日歷中的選擇日期發生改變時激發SelectionChanged事件
//並且將現在所選擇的日期顯示在文本框中
protected void EventCalendar_SelectionChanged(object sender, EventArgs e)
{
txtEventDate.Text = EventCalendar.SelectedDate.ToShortDateString();
}
}
Label控件
Label控件用來在移動設備中顯示只讀的、基於文本的信息。你可以通過屬性窗口的 Text屬性來設置相應的文本信息,你也可以通過編碼的方式進行動態的改變。如果你的文本信息過長而屏幕無法在一行進行整體顯示的話,你就可以設置 Wrapping為Wrap,這使得文本信息可以自動地分行進行顯示。下表是Label控件的一些常見屬性:
屬性 說明
Wrapping
如果Label控件的文本信息過長的話,可以設置該屬性將信息分為多行進行顯示。其枚舉值有:NotSet、 Wrap 和 NoWrap.
Alignment 設置標簽文本的對齊方式。其枚舉值有:NotSet、 Left、Right 和 Center.
BreakAfter 是否在控件後附加尾隨換行符。此換行符使後續內容從下一行開始。默認為 true
TextBox控件
當你希望用戶輸入文本信息時候,你可以在窗體上放置一個TextBox控件。 TextBox控件中的信息可以通過編碼進行設置,也可以通過該控件的Text屬性進行設置。如果你在某些情況下不希望TextBox控件直接顯示文本信息的話(例如你輸入的密碼),可以設置該控件的Password為True。下表是TextBox控件的一些常見屬性:
屬性 說明
Text 設置文本框的初始字符串
Password 設置該屬性為true,將屏蔽或隱藏目標設備上的輸入
Size
Size 屬性指定期望的輸入字符串寬度(即所含字符數)。TextBox控件根據 Size 的值來縮放其輸入框。值 0 表示 TextBox 控件使用其初始大小設置。輸入字符串(和初始字符串)包含的字符數可以大於 Size 指定的字符數。如果用戶輸入的字符串對輸入框來說太長,則以前輸入的字符會向左滾動。
MaxLength 該屬性設置輸入字符串的最大長度。
Alignment 設置文本框中的文本對齊方式。其枚舉值有:NotSet、 Left、Right 和 Center.
下面的程序是用TextBox控件實現兩個整型數據的加法運算。
清單5:TextBoxDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="TextBoxDefault.aspx.cs" Inherits="TextBoxDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">兩數相加< br />< br />
< mobile:TextBox ID="txtNum1" Runat="server">< /mobile:TextBox>
< mobile:TextBox ID="txtNum2" Runat="server">< /mobile:TextBox>
< mobile:Label ID="lblResult" Runat="server">< /mobile:Label>
< mobile:Command ID="cmdAdd" Runat="server" >求和
< /mobile:Command>
< /mobile:Form>
< /body>
< /html>
清單6:TextBoxDefault.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.Mobile;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public partial class TextBoxDefault : System.Web.UI.MobileControls.MobilePage
{
protected void cmdAdd_Click(object sender, EventArgs e)
{
int Num1;
int Num2;
Num1 = Convert.ToInt32(txtNum1.Text);
Num2 = Convert.ToInt32(txtNum2.Text);
lblResult.Text = Convert.ToString(Num1 + Num2);
}
}
Image控件
為了在移動設備的屏幕上顯示一個圖片,我們可以在移動WEB窗體上添加一個Image控件,其中Image控件的ImageUrl屬性就是用來指定圖片所在的位置。還可以設置該控件的NavigateUrl屬性,為圖像指定一個目標URL。
現在有個很大的問題就是圖片在不同的移動設備上的顯示效果或支持程度是不同的,這就存在很多不確定的因素。為此,Image控件提供了一系列的工具來克服這些限制。設備篩選器就是上述工具中的一種,因為Image控件不提供任何的不同特性集間的圖像轉換服務,如將彩色圖像轉換為單色圖像的服務。所以在運行時,我們可以指定多個圖像文件以供 Image控件根據移動設備的設備特性進行選擇。設備篩選器將在後續章節進行詳細的介紹。下表是Image控件的一些常見屬性:
說明
NavigateUrl 設置圖像的目標 URL。
ImageUrl
可以在設計時或運行時以編程方式為Image對象指定圖形文件。還可以將控件的 ImageUrl 屬性綁定到一個數據源,以根據數據庫信息顯示圖形。
AlternateText 無法找到圖形文件時顯示的文本。
清單7:ImageDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageDefault.aspx.cs" Inherits="ImageDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">
< mobile:Image ID="Image1" Runat="server" AlternateText="天極網絡"
ImageUrl="~/images/yesky.gif">
< /mobile:Image>
< /mobile:Form>
< /body>
< /html>
PhoneCall 控件
PhoneCall 控件的主要功能就是可以為用戶提供通話服務。如果移動設備具備通話功能的話,PhoneCall 控件將向用戶顯示一個字符串。該字符串將顯示為一個可供用戶選擇的命令。使用 Text 屬性可設置字符串的內容。使用 PhoneNumber 屬性可設置移動設備要撥叫的號碼。
如果用戶的移動設備不具備通話功能的話,則 PhoneCall 控件將根據在 AlternateFormat 屬性中設置的格式字符串顯示文本。默認情況下,AlternateFormat 屬性包含 {0} {1} 作為其格式字符串。PhoneCall 控件用 Text 屬性中的字符串替換 {0},用 PhoneNumber 屬性的內容替換 {1}。如果在 AlternateUrl 屬性中指定了 URL,則可以將輸出文本在移動設備上顯示為超鏈接,用戶點擊該超鏈接時將跳轉到對應的URL上。下表是PhoneCall控件的一些常見屬性:
屬性 說明
AlternateFormat 用戶的移動設備在不支持通話功能的情況下,PhoneCall控件將根據在 AlternateFormat 屬性中指定的格式字符串顯示文本。
AlternateUrl
在用戶的移動設備在不支持通話功能的情況下,提供一個鏈接使得用戶可以跳轉到其它的移動窗體上。
Text
在具有通話功能的移動設備上,PhoneCall 控件將向用戶顯示一個字符串。該字符串將顯示為用戶可選擇的命令。使用Text 屬性可設置字符串的內容。
PhoneNumber 該屬性用來設置設備將撥叫的號碼。
下面是一個使用PhoneCall 控件的簡單示例,由於Pocket PC仿真設備支持通話功能,所以它可以根據PhoneNumber設置的號碼進行撥叫。而Openwave模擬器由於不支持通話功能,所以它將根據AlternateUrl設置的鏈接進行跳轉。
清單8:PhoneCallDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="PhoneCallDefault.aspx.cs" Inherits="PhoneCallDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">
< mobile:PhoneCall ID="PhoneCall1" Runat="server" AlternateUrl="http://www.baidu.com"
PhoneNumber="03115882724" SoftKeyLabel="撥號">撥叫:
< /mobile:PhoneCall>
< /mobile:Form>
< /body>
< /html>
Link 控件
Link 控件主要用來顯示一個供超鏈接使用的文本字符串。超鏈接可指向同一個ASP.NET 移動 Web 窗體頁上的另一窗體,也可指向其他的 URL。對於支持軟鍵的移動設備,你可以在 SoftkeyLabel 屬性中鍵入簡短的字符串文本,軟鍵是許多移動電話上都有的可編程按鈕。如果你希望創建一個帶有鏈接的圖像,請使用 Image 控件。下表是Link控件的一些常見屬性:
屬性 說明
NavigateUrl 指定鏈接的目標 URL
Text 設置Link控件的文本信息
SoftKeyLabel 對於支持軟鍵的輸出設備,可將軟鍵的標題鍵入SoftkeyLabel屬性中。
Link 控件在構建移動設備的菜單方面是很常用的。由於移動設備在輸入方面的限制,所以要提供一些友好的菜單供用戶選擇。下面的程序清單實現的是一個簡單的菜單功能,用戶可以點擊不同的鏈接跳轉到對應的移動窗體上。注意本程序中,由於Openwave模擬器支持軟鍵,所以會顯示軟鍵的標題。
清單9:LinkDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="LinkDefault.aspx.cs" Inherits="LinkDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Language" runat="server">
< mobile:Link ID="CShape" Runat="server" NavigateUrl="/CShape.aspx" SoftkeyLabel="CShape">Select CShape
< /mobile:Link>
< mobile:Link ID="VB" Runat="server" NavigateUrl="/VB.aspx" SoftkeyLabel="VB">
Select VB
< /mobile:Link>
< mobile:Link ID="JShape" Runat="server" NavigateUrl="/JShape.aspx"
SoftkeyLabel="JShape">Select JShape
< /mobile:Link>
< /mobile:Form>
< /body>
< /html>
List 控件
List控件用來顯示項的靜態列表。你也可以從數據庫動態地檢索數據,然後將這些數據綁定到List控件上。通過在“屬性”窗口中單擊 Items 屬性旁的省略號按鈕 (……) 並使用 List 屬性對話框,可向列表中添加項。設置ItemCount 屬性可指定列表包含的項的數目。在一些設備上,必須對列表進行分頁。您可將 ItemsPerPage 屬性設置為要在每頁上顯示的列表項的數目。
使用數據綁定,List控件可以從數據源動態地獲得其屬性值。使用“屬性” 窗口中的DataBindings屬性可以指定要綁定的屬性。此外,List控件可使用數據綁定從數據源讀取它的項。在DataSource屬性中可為項指定數據源。使用DataMember屬性可設置當控件執行數據綁定時從中讀取數據的數據源成員。DataTextField和 DataValueField 屬性分別設置當 List 控件綁定項的 Text 和 Value 屬性時,將使用數據綁定項的哪一屬性。
使用 Alignment、ForeColor、Font、StyleReference 和 Wrapping 屬性可設置 List 控件的外觀。List 控件可以使用編號或項目符號顯示它們的項,具體樣式在 Decoration 屬性中指定。
下表是List控件的一些常見屬性:
屬性 說明
DataSource 要綁定的列表的數據源。
DataMember
當數據綁定到列表數據源時要提取的數據成員。僅在DataSource屬性的值的類型為 IListSource 而不是 IEnumerable 時,才使用此屬性。
DataValueField 在綁定某個項的 Value 屬性時要使用的數據綁定項的屬性。
DataTextField 在綁定項的 Text 屬性時要使用的數據綁定項的屬性。
Decoration 用於項的修飾的類型。
清單10和11是一個將數據庫中的數據綁定到List控件的示例,該程序將數據源的Company Name字段綁定List控件上。
清單10:ListDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="ListDefault.aspx.cs" Inherits="ListDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">公司名稱< br />
< mobile:List ID="lstResult" Runat="server" DataTextField="CompanyName" DataValueField="CustomerID" Decoration="Bulleted">
< /mobile:List>
< /mobile:Form>
< /body>
< /html>
清單11:ListDefault.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.Mobile;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
public partial class ListDefault : System.Web.UI.MobileControls.MobilePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string conn = ConfigurationManager.ConnectionStrings["Northwinds"].ConnectionString;
SqlConnection objConn = new SqlConnection(conn);
SqlCommand objCmd= new SqlCommand();
objCmd.CommandText = "SELECT TOP 3 * FROM CUSTOMERS";
objCmd.Connection = objConn;
objConn.Open();
SqlDataReader objReader = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
lstResult.DataSource = objReader;
lstResult.DataBind();
objCmd.Dispose();
objConn.Dispose();
}
}
}
ObjectList 控件
ObjectList控件提供了一種及其簡單的方式來顯示數據集合(如數據庫)的多個視圖。該控件開始只顯示數據源中的某個列,而不是所有的數據項。當你選擇列表中的一個記錄字段時, ObjectList控件會回發到服務器並且把該記錄的所有字段都顯示出來。該控件還自動提供一個“上一步”按鈕,這樣使用戶可以返回列表主界面。你可以將某個字段設置給ObjectList控件的LabelField屬性,這樣該字段就會在ObjectList控件主界面上進行顯示。
下面直接在程序清單10和11上進行小部分的更改,即把List控件改為ObjectList控件,並且設置ObjectList控件的LabelField屬性為 CustomerID,ID設置為lstResult。這時,ObjectList控件將首先顯示CustomerID字段的信息。當用戶單擊某個 CustomerID字段信息時,就會將該記錄的其它所有信息顯示出來。
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
public partial class SelectListDefault : System.Web.UI.MobileControls.MobilePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string conn = ConfigurationManager.ConnectionStrings["Northwinds"].ConnectionString;
SqlConnection objConn = new SqlConnection(conn);
SqlCommand objCmd = new SqlCommand();
objCmd.CommandText = "SELECT TOP 3 * FROM CUSTOMERS";
objCmd.Connection = objConn;
DataSet ds = new DataSet();
SqlDataAdapter objAdapter = new SqlDataAdapter();
objAdapter.SelectCommand = objCmd;
objAdapter.Fill(ds);
objCmd.Dispose();
slistDropDown.DataSource = ds.Tables[0].DefaultView;
slistListBox.DataSource = ds.Tables[0].DefaultView;
slistRadioButton.DataSource = ds.Tables[0].DefaultView;
slistCheckBoxes.DataSource = ds.Tables[0].DefaultView;
slistDropDown.DataBind();
slistListBox.DataBind();
slistRadioButton.DataBind();
slistCheckBoxes.DataBind();
}
}
}
驗證控件
移動WEB程序中的驗證控件和傳統的ASP.NET程序中的驗證控件具有類似的工作方式。例如 RequiredFieldValidator控件確保用戶必須輸入信息,CompareValidator控件用來比較兩個字段,RangeValidator確保整個字段都必須在一個特定的范圍之內,RegularExpressionValidator控件用正則表達式來驗證信息,而CustomValidator控件利用用戶自定義代碼進行信息的驗證。
當然,移動WEB程序中的驗證控件和傳統的 ASP.NET程序中的驗證控件還是有些細小的區別。例如ValidationSummary控件不支持DisplayMode、 EnableClientScript、ShowMessageBox、ShowSummary等屬性。
但是在移動WEB程序中,ValidationSummary控件添加了BackLabel和FormToValidate兩個屬性。因為移動設備的屏幕限制,所以 ValidationSummary控件通常將驗證信息在一個新的窗體中進行顯示。當在呈現窗體的過程中發生錯誤時,驗證過程將BackLabel屬性中的文本用作驗證摘要頁上顯示的字符串。而使用 FormToValidate屬性將一個窗體指定為待驗證的窗體。
下面的程序包含一個文本框和兩個驗證控件。RequiredFieldValidator控件確保文本框中的信息不為空,而RegularExpressionValidator控件確保輸入的值為一個北京的電話號碼。
清單14: ValidatorDefault.aspx
< %@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidatorDefault.aspx.cs" Inherits="ValidatorDefault" %>
< %@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
< html xmlns="http://www.w3.org/1999/xhtml" >
< body>
< mobile:Form id="Form1" runat="server">
< mobile:Label ID="lblPhoneNumber" Runat="server"> 輸入電話號碼:< /mobile:Label>
< mobile:TextBox ID="txtPhoneNumber" Runat="server">< /mobile:TextBox>
< mobile:RequiredFieldValidator ID="rfvPhone" Runat="server" ControlToValidate="txtPhoneNumber" ErrorMessage="電話號碼必須輸入">*
< /mobile:RequiredFieldValidator>
< mobile:RegularExpressionValidator ID="revPhone" Runat="server" ControlToValidate="txtPhoneNumber" ErrorMessage="錯誤的電話格式"
ValidationExpression="((d{3})|d{3}-)?d{8}">*
< /mobile:RegularExpressionValidator>
< mobile:Command ID="cmdPhoneNumber" Runat="server">OK< /mobile:Command>
< mobile:ValidationSummary ID="ValidationSummary1" Runat="server"
BackLabel="返回重新輸入" FormToValidate="Form1">
< /mobile:ValidationSummary>
< /mobile:Form>
< /body>
< /html>
TextView控件
使用 TextView 控件可以顯示大段文本數據。在此控件中,您可以使用常規、粗體和斜體樣式來顯示文本,並可以使用分行符、段落標記和超鏈接。
在實際的應用中,TextView 控件和Label控件在功能上幾乎是差不多的。早期的.NET Framework中Label控件是不允許分行顯示的,但是在.NET Framework 2.0中已經添加了該功能,這就使得TextView 控件在2.0中有點顯得多余,但是它也有自己的獨特功能。下表是TextView控件的一些常見屬性:
屬性 說明
Wrapping
如果TextView控件的文本信息過長的話,可以設置該屬性將信息分為多行進行顯示。其枚舉值有:NotSet、 Wrap 和 NoWrap.
Alignment 設置TextView控件內文本的對齊方式。其枚舉值有:NotSet、 Left、Right 和 Center.
BreakAfter 是否在控件後附加尾隨換行符。此換行符使後續內容從下一行開始。默認為 true
Command控件
在ASP.NET WEB移動開發控件中是不存在Button控件的,取而代之的是Command控件。它用來創建一個用戶界面元素以使用戶能夠調用 ASP.NET 事件處理程序,並使得用戶的輸入從頁面回發到服務器端。當用戶點擊Command控件時,它會在服務器端自動地激發兩個事件,分別為Click 和 ItemCommand,並且這兩個事件可以在同一個頁面上進行處理。然而,如果Command控件包含在一個容器中,ItemCommand事件將向上冒泡到父控件上。下表是Command控件的一些常見屬性:
屬性 說明
Text 該屬性為Command控件顯示時的字符串
ImageUrl Command 控件可以在支持圖像的設備上顯示位圖圖像,因此我們可以用ImageUrl屬性指定圖像位置的URL。
CausesValidation 默認情況下,Command 控件的 CausesValidation 屬性的值為 true。這使得服務器會對同一窗體中的所有其他控件進行驗證。若要禁用此行為,請將 CausesValidation 設置為 false。
注意,Command控件的CausesValidation屬性在默認狀態下設置為True,這表明用戶點擊該控件時,將在活動的移動WEB窗體上使用驗證控件進行信息的驗證。當然你也可以設置CausesValidation屬性為False即不采用驗證。
ASP.NET 移動控件使開發人員可以面向廣泛的移動設備,包括支持 Web 的移動電話、尋呼機和個人數字助理 (PDA)。ASP.NET為移動設備提供的 Web 應用程序模型與為面向桌面浏覽器的 ASP.NET 應用程序提供的模型一樣豐富。本節將介紹 ASP.NET 移動控件添加到 ASP.NET Web 窗體的一系列擴展。 ASP.NET 移動控件由一組 ASP.NET 服務器控件和設備適配器組成,它們可以以智能的方式呈現您的應用程序。並且在使用之前,要對應用程序做一些配置改變。這對於處理一些移動設備的限制是而言是必需的。
首先必須允許不依賴於Cookie的Session。並不是所有的移動設備都支持浏覽器Cookie。為了讓Session狀態能夠在這些設備上起作用,就必須使用不依賴於Cookie的Session。此外,與普通的ASP.NET頁面不同,移動頁面使用Session狀態來保存視圖狀態(這通常是為了保留帶寬)。由於某些移動控件依賴於視圖狀態,因此必須允許不依賴於Cookie的Session,以便讓這些控件正常工作。
需要做得第二個改變是自動生成URL的方式,有些移動設備要求完整路徑的URL,而不是相對路徑的URL。
可以同時允許不依賴於Cookie的Session和完整路徑的URL,把如下的Web.Config文件添加到應用程序的根目錄下即可(黑體加粗的部分為允許不依賴於Cookie的Session和完整路徑的URL的設置):
Web.Config代碼:
< ?xml version="1.0"?>
< !--
注意: 除了手動編輯此文件以外,您還可以使用Web 管理工具來配置應用程序的設置。可以使用Visual Studio 中的“網站”->“Asp.Net 配置”選項。設置和注釋的完整列表在 machine.config.comments 中,該文件通常位於WindowsMicrosoft.NetFrameworkv2.xConfig 中
-->
< configuration>
< appSettings/>
< connectionStrings/>
< system.web>
< !--
設置 compilation debug="true" 將調試符號插入
已編譯的頁面中。但由於這會
影響性能,因此只在開發過程中將此值
設置為 true。
-->
< compilation debug="true"/>
< !--
通過 < authentication> 節可以配置 ASP.NET 使用的
安全身份驗證模式,
以標識傳入的用戶。
-->
< authentication mode="Windows"/>
< !--
如果在執行請求的過程中出現未處理的錯誤,
則通過 < customErrors> 節可以配置相應的處理步驟。具體說來,
開發人員通過該節可以配置
要顯示的 html 錯誤頁
以代替錯誤堆棧跟蹤。
< customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
< error statusCode="403" redirect="NoAccess.htm" />
< error statusCode="404" redirect="FileNotFound.htm" />
< /customErrors>
-->
< authorization>
< allow users="all"/>
< /authorization>
< httpRuntime useFullyQualifiedRedirectUrl="true"/>
< sessionState mode="InProc" cookieless="true" timeout="20">< /sessionState>
< /system.web>
< /configuration>