首页  ·  知识 ·  移动开发
WAP开发经验总结-C#、Java
ztf704  http://hi.baidu.com/ztf704/blog/  Wphone  编辑:dezai  图片来源:网络
ASP.NET Mobile控件如何工作 ASP.NET Mobile控件是一个对ASP.NET的扩展,ASP.NET Mobile控件建立在.NET Framework和ASP.NET之上,该控件实际上继承

ASP.NET Mobile控件如何工作

ASP.NET Mobile控件是一个对ASP.NET的扩展,ASP.NET Mobile控件建立在.NET Framework和ASP.NET之上,该控件实际上继承自ASP.NET Web Forms控件(见图3)。

图3   ASP.NET Mobile控件继承自ASP.NET Web Forms控件


步骤:
1. Web客户端请求Web页。
2. 该请求在Internet上传播并被IIS接受到。
3. 该请求然后被.NET Framework处理。
4. 所请求Web页由ASP.NET完成。
5. ASP.NET Mobile控件处理任何移动设备请求。
6. Web页然后返回到客户端。
ASP.NET Mobile控件在运行时计算设备性能。对于每个放置在移动页面上的控件,有一个相应的适配器来呈现适合于该设备的标记。 因此,你在页面上以控件的形式设计功能事项,然后在请求进来时,适配器被选择来显示请求设备的功能(见图4)。例如,在一个多格式设备上的日历可以以表格布局的方式显示,并通过从表格选择事项来为选择日期提供一个美观的丰富格式体验;或在一个小型移动电话上,通过改变显示来选择月,然后从该月选择星期。所有你做的这些是操作移动日历,将其放置在页面上,运行时刻的响应建立在移动设备能够处理什么的基础上。

图4    ASP.NET Mobile控件为各种设备自动生成不同的输出设备仿真程序设备仿真程序为移动Web应用程序第一阶段测试提供了一个经济和可行的方法。你可以从你的台式PC上测试一个移动Web应用程序,验证基本的界面和感觉、站点导航、核心功能和使用仿真程序来自Web站点的你期望的内容。一个通用PocketPC仿真程序包含在Visual Studio .NET 2003中。可以用于ASP.NET Mobile控件的附加仿真程序列表,请访问"http://support.microsoft.com/default.aspx?scid=KB;en-us;320977"Microsoft Knowledge Base article 320977 ASP.NET Mobile控件 有许多控件可以用于开发Mobile应用程序,表1显示了一个所有控件的列表以及它们如何与Web Forms和Visual FoxPro控件关联。表1   对Web Forms、移动Web Forms和Visual FoxPro控件的比较

容器控件容器控件是其他控件的父级,其为开发者提供了一种容易的方法来在页面上组织控件组。对于移动应用程序可用的两个容器控件是Form和Panel,你需要在页面上具有Form控件来为其它移动Web Forms控件工作,因为没有一个由其它控件提供的功能在标记集合之外是可用的。Panel控件也是一个容器控件,但是,该控件也必须被嵌套在一个Form控件中。 Form控件可以包含许多开发者想使用的控件,但是,要牢记不同设备的显示限制。运行时刻把每个Form作为一个独立单元,并同时不发送更多Form到客户端。在Web Form中,你传输不同的Web页, 在移动Web Forms中,你传输不同的Form。所有Form被包含在一个Web页中,要传输其它Form,设置属性ActiveForm 为要传输Form的名称:

ActiveForm = Form2

Panel控件提供了一个容器,与Visual FoxPro中的Container控件类似,其可以用于分组多个控件。这样做,可以使用一个单个控件来显示、隐藏、允许或禁止一个控件集合,也可以应用格式到Panel上,其由子控件继承。Panel 控件的其他应用是其可以为动态建立控件充当一个占位符。文本显示控件 Label、TextBox和TextView控件可以被用于客户端显示文本。 Label控件仅用于客户端显示文本,文本是只读的,并且控件不提供属性或事件进行配置。 TextBox控件提供在客户端的单行数据输入,可以用于显示或收集文本或通过隐藏字符来充当一个密码数据输入。 TreeView控件仅限于ASP.NET Mobile控件,其为多行文本显示来呈现大量的文本,其也为黑体、斜体、分页符、段落和锚定支持标记标签设置。此外,TreeView控件支持标记页数。列表和选择控件列表和选择ASP.NET Mobile控件包括List、SelectionList和ObjectList控件,使用这些控件,客户端可以从一组选项中进行选择和在表格中显示信息。移动设备在内存、屏幕尺寸和数据输入能力上很有限,其需要一个很长的时间来输入你的姓名和联系信息到移动电话浏览器或PDA中,因此,帮助用户从建立的项目中选择并限制输入的总量是非常重要的,使用List和SelectionList控件在提供这些功能方面十分有用。 List控件可以被用于为用户显示一个短的选项列表,它可以显示一个静态列表或是一个交互列表。静态列表被用于用户只能查看的列表项目,不能选择;使用交互列表,用户可以进行选择和导航用户界面,项目可以以数字或项目符号修饰,并且该控件支持标记页数。


      
      

SelectionList控件用于提供一个短的选项列表,该控件不支持标记页数,所以它不能一次显示超过一页的信息,SelectionList控件支持多次选择选项并可以被作为一个列表框、多选择列表框、组合框、单选按钮或选择框来显示。


  
 

ObjectList控件和在Web Form中DataGrid以及Visual FoxPro中的Grid控件类似,该控件可以被用于显示多个字段,它应当与一个数据源关联并可以把多个命令和控件中的每个对象关联起来。该控件的示例显示见图5。

图5    ObjectList控件的示例输出表2显示了一个列表和选择控件之间的比较。

传输控件 ASP.NET Mobile 控件提供了几个用于传输或导航的控件:PhoneCall控件、Link控件和Command控件,PhoneCall控件仅用于ASP.NET Mobile控件并为自动呼叫生成标记和显示电话号码,可以使用该控件开发一个表单来列出各个姓名,用户可以使用电话设备自动拨叫指定的号码。 Link控件提供了一个基于文本的超级链接到移动页面上的其他表单或任何URL,通过设置SoftkeyLabel属性,该控件也支持SoftKey—用于一些移动电话上作为一个额外导航键(见图6)。

Go to Results

图6    移动电话上的SoftKeys The Command控件与Visual FoxPro中的CommandButton类似,并被看作是一个比Link控件更具灵活性的控件。 Command控件基于设备的性能而以不同的形式显示,对于移动电话,其通常以一个基于文本的标签显示并与Link控件相似,但是,在更多功能的PDA上,其以HTML显示,该控件也支持SoftKeys。

Select Product

图像显示控件 Image控件和AdRotator控件是由ASP.NET Mobile控件提供的图像显示控件,Image控件用于把图像嵌入到移动页面并建立导航能力,如果图像在请求的设备上不支持,则显示替代文本。

AdRotator控件在一个Web表单上显示广告标题,每次表单加载或刷新时,显示的广告随机改变,该控件使用一个XML文件来检索内容进行显示。 Calendar控件 Calendar控件是一个丰富格式类,可以在搜集或跟踪基于日期的数据时使用。该控件自身显示的差异依赖于所用的设备(见图7),有许多可设置属性来控制日历如何显示。

图7    Calendar控件显示差异依赖于设备的类型验证控件 ASP.NET Mobile控件提供了在移动页面上可以用于验证数据的各种控件,这些控件自动验证给他们分配的控件的数据。如果数据没有通过验证,控件显示一个自定义错误信息给客户端。一个这些控件的列表以及在何时使用每个控件见表3。表3    移动页面可用的所有验证控件列表名称 功能 CompareValidator 比较两个值 CustomValidator 提供自定义验证 RangeValidator 验证一个范围 RegularExpressionValidator 验证一个表达式 RequiredFieldValidator 验证请求数据 ValidationSummary 显示一个验证摘要操纵数据数据访问是任何应用程序的一个至关重要部分,有很少一些Visual FoxPro应用程序不要求使用数据。移动应用程序也应当访问动态数据,.NET Framework包含了一个数据访问命名空间和类的集合,叫做ADO.NET。ASP.NET使用ADO.NET来执行它的数据处理,ADO.NET被特定地设计使用OLE DB或XML进行最佳化数据访问。对象模型(见图8)和ADO类似,并由一个Connection对象(提供连接到一个数据源)和一个Command对象(在数据库上执行命令来返回或修改数据、运行存储过程,等等)构成,此外,你可以使用ADO.NET作为一个强壮的、分层的、断开连接的数据存储器进行脱机数据工作,使用中心断开连接对象、数据集合来进行排序、搜索、过滤、保存挂起修改和导航整个分层数据。在设计移动应用程序时,你可以使用两种不同的途径访问数据:使用Visual FoxPro OLE DB provider来直接访问表或移动应用程序调用一个Visual FoxPro COM 对象来检索数据并返回XML。

图8    ADO.NET对象模型为直接数据访问使用Visual FoxPro OLE DB Provider 开发者可以使用Visual FoxPro OLE DB provider来直接访问表并绑定到控件上,数据可以在一个移动页面中被显示和修改,OLE DB provider执行一个COM接口集合,该集合允许访问在标准行/列格式中的数据。OLE DB provider支持Visual FoxPro数据库事件,你可以调用存储过程(以及要求的参数)、访问触发器、规则和在数据库容器中的默认值。在Visual FoxPro 8.0中,OLE DB provider被增强来为ADO.NET提供更大的兼容性。下列代码示例显示了如何从一个客户的Visual FoxPro表检索记录并在一个List控件中显示结果。

Dim connStr As String = "Provider=VFPOLEDB.1;Data Source=" & _
      "C:\SAMPLES\DATA\TESTDATA.DBC"

Dim strSQL As String = "SELECT * FROM Customer"
Dim oda As New OleDbDataAdapter(strSQL, connStr)
Dim ds As New DataSet()

oda.Fill(ds, "CustomerInfo")

'Assign DataSet to List control
lstCountry.DataTextField = "Country"
lstCountry.DataValueField = "Country"
lstCountry.DataSource = ds
lstCountry.DataBind()

使用ADO.NET SQL Client Data Provider,同样的功能可以用于访问SQL Server数据(版本7.0和后期版本),提供的程序执行和OLE DB provider同样的基类,下面前面示例使用SQL Server数据的代码。

Dim connStr As String = "Data Source=(local);" & _ 
      "Initial Catalog=Northwind;" & _
      "Integrated Security=SSPI;" & _
      "Persist Security Info=False"

Dim strSQL As String = "SELECT * FROM Customers"
Dim oda As New SqlDataAdapter(strSQL, connStr)
Dim ds As New DataSet()

oda.Fill(ds, "CustomerInfo")

'Assign DataSet to List control
lstCountry.DataTextField = "Country"
lstCountry.DataValueField = "Country"
lstCountry.DataSource = ds
lstCountry.DataBind()

参考地址:

http://www.asp.net/mobile/2514A_01A001.swf

[Wap] 识别访问手机的能力  http://blog.csdn.net/zhengyun_ustc/archive/2005/07/28/437523.aspx

本文作者:ztf704 来源:http://hi.baidu.com/ztf704/blog/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读