科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET 2.0移动开发之设备筛选器的应用

ASP.NET 2.0移动开发之设备筛选器的应用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们可以直接采用一种便捷的、可视化的方式去定义DeviceSpecific/Choice构造和设备筛选器,避免了在程序中采用手动编码这样繁杂的实现过程

作者:轩辕南宫 来源:天极开发 2007年11月6日

关键字: Windows

  • 评论
  • 分享微博
  • 分享邮件
除此之外,Form控件中还包含了一个使用DeviceSpecific/Choice构造的Label控件,而使用DeviceSpecific/Choice构造的主要目的就是属性重写。Label控件默认状态下的文本值为一段长的字符串"Welcome to our mobile Sports Extra Web site. Check here for up-to-the minute sports news as it happens!"。然而,在一些小屏幕的设备来说,例如支持WML 1.1,CHTML 1.0标记语言的设备(也就是说对isWML11、isCHTML10设备筛选器来说返回true),上述的字符串将缩短为"Welcome to LIVE results!"。而且在i-mode的设备(就是支持CHTML 1.0的设备)上,Text属性和ForeColor属性均被重写。

  下面两图分别是上述程序在Pocket Internet Explorer和openwave仿真程序中的实际显示效果。从图可以看出,在Pocket Internet Explorer中,页面的布局是采用表格的形式,而且因为Pocket Internet Explorer支持HTML 3.2标记语言,所以DeviceSpecific/Choice构造的第一个<Choice>元素返回true值,为此会使用<HeaderTemplate>和<FooterTemplate>两个模板,并且label控件显示的是长字符串文本。

  

  使用属性重写为自定义特定设备的呈现

  属性重写是一种在DeviceSpecific/Choice构造中为不同的客户端设备设置不同的控件属性值的方法,也就是说可以根据不同的设备进行不同的呈现。

  每个ASP.NET移动控件都可以包含一个DeviceSpecific/Choice构造。在<DeviceSpecific>元素中的每个<Choice>元素依次进行鉴别,而第一个鉴别为true的<Choice>元素将应用到包含该构造的控件上。在上一篇文章《设备筛选器的定义及实现》中,我曾经举了一个使用属性重写的具体的实例,就是使用image控件为特定的移动设备呈现该设备支持格式的图片,代码如下:

<mobile:Image runat="server" id="myImages" AlternateText="Northwind Corp.">
<DeviceSpecific>
<Choice Filter="isHTML32" ImageUrl="Northwindlogo.gif"/>
<Choice Filter="isWML11" ImageUrl="Northwindlogo.wbmp"/>
</DeviceSpecific>
</mobile:Image>

  当客户端设备请求包含该控件的页面时,ASP.NET会自动使用该设备对应的MobileCapabilities对象来解析<Choice>元素。如果isHTML32返回true的话,那么image控件就将使用Northwindlogo.gif进行呈现。如果isWML11返回true,就使用Northwindlogo.wbmp图片。如果上述的两个设备筛选器均不为true 的话,那么ImageUrl属性就处于未定义状态,也就是说将使用image控件的AlternateText属性值"Northwind Corp."文本进行替代。

  提示:在image控件中使用的两个设备筛选器均已经在Web.Config文件中进行了定义,如果你的站点程序还没有Web.Config文件的话,可以在"解决方案资源管理器"中通过右键菜单的"添加新项"-"移动Web配置文件"方式手动进行添加。

  在上面的示例中演示了DeviceSpecific/Choice构造的基本用法:如果特定的设备筛选器为true的话,将对包含该构造的控件进行属性重写。属性重写主要可以用来实现:

  1. 使用不同的图片文件:当一个客户端设备支持不同的图片格式,你可以采用属性重写实现选择何种图片进行呈现。

  2. 因为设备显示屏大小而对字符串进行调整:你可以在一些大屏幕的设备上使用长字符串,而在小屏幕的设备使用缩减的字符串。

  3. 支持多语言的程序:你可以根据客户端设备使用的首选语言,为控件的Text属性设置以该语言对应的文本。

  4. 为特定设备自定义样式属性:当客户端设备在呈现控件时,ASP.NET会根据该设备支持的特性使用不同的字体或颜色。除此之外,你还可以为特定的设备使用不同的样式属性。 在下一篇文章中将会介如何使用DeviceSpecific/Choice构造和模板化控件,为客户端设备使用特定的标记语言。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章