WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章WAP教程WAP 2.0使用 Web 标准生成 ASP.NET 2.0 Web 站点

使用 Web 标准生成 ASP.NET 2.0 Web 站点
作者:Stephen Walther  来源:Stephen Walther  发布时间:2006-4-27 1:19:21
 back to displaying our image 
    '''  
    Public Shared Function FormatBookCover(ByVal Url As String) _ 
      As String 
        If Not IsNothing(Url) Then 
            Return Url 
        Else 
            Return "Images/NoBookCover.gif" 
        End If 
    End Function 
End Class

该类中的两个最重要的函数名为 GetBooksFromAmazon 和 SearchBooksFromAmazon。第一个函数从 Default.aspx 页中调用,以便按照类别显示书籍清单。第二个函数从 Search.aspx 页中调用,以便使用户能够搜索书籍。

这两个函数都使用名为 AmazonServices 的 Web 服务代理类。该代理类是通过依次选择菜单选项 Web site、Add Web Reference 并且输入 URL http://soap.amazon.com/onca/soap?Service=AWSECommerceService 创建的。这是用于访问美国 Amazon 数据的正确的 URL。 

返回页首
默认页
Default.aspx 页显示书籍类别的列表,并且显示所选类别的匹配书籍的列表(参见图 14)。Default.aspx 页包含在清单 11 中。



图 14. 默认页


清单 11. Default.aspx

<%@ Page Language="VB" MasterPageFile="~/SiteMaster.master"  
  Title="Super Super Books" %> 
<script runat="server"> 
    Sub Page_Load() 
        Dim categoryIndex As Integer = 0 
        If Not IsNothing(Request("index")) Then 
            categoryIndex = Int32.Parse(Request("index")) 
        End If 
        MenuCategories.Items(categoryIndex).Selected = True 
    End Sub 
</script> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentBody"  
  Runat="Server"> 
    <h1>Book Listings</h1> 
    <hr /> 
    <div id="leftColumn"> 
    <asp:Menu 
        id="MenuCategories" 
        ToolTip="Book categories menu" 
        StaticMenuItemStyle-CssClass="menuNormal" 
        StaticSelectedStyle-CssClass="menuSelected" 
        Runat="server"> 
        <Items> 
        <asp:MenuItem  
            Text="Arts and Photography" 
            Value="1" 
            NavigateUrl="~/Default.aspx?index=0" /> 
        <asp:MenuItem  
            Text="Biographies and Memoirs" 
            Value="2" 
            NavigateUrl="~/Default.aspx?index=1" /> 
        <asp:MenuItem  
            Text="Children's Books" 
            Value="4"  
            NavigateUrl="~/Default.aspx?index=2" /> 
        <asp:MenuItem  
            Text="Computers and Internet" 
            Value="5"  
            NavigateUrl="~/Default.aspx?index=3" /> 
        <asp:MenuItem  
            Text="Cooking, Food and Wine" 
            Value="6"  
            NavigateUrl="~/Default.aspx?index=4" /> 
        <asp:MenuItem  
            Text="Science Fiction and Fantasy" 
            Value="25"  
            NavigateUrl="~/Default.aspx?index=5" /> 
        </Items> 
    </asp:Menu>     
    </div> 
    <div id="middleColumn"> 
    <asp:GridView 
        id="grdBooks" 
        DataSourceID="srcBooks" 
        AutoGenerateColumns="false" 
        CssClass="books" 
        HeaderStyle-CssClass="booksHeader" 
        EmptyDataText="No matching results" 
        Runat="server"> 
        <Columns> 
        <asp:TemplateField HeaderText="Book Cover Image"> 
        <ItemTemplate> 
            <asp:Image 
                id="imgBook" 
                ImageUrl='<%#Amazon.FormatBookCover(Eval("SmallImage.Url"))%>' 
                AlternateText="Book cover image" 
                Runat="server" /> 
        </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Book Information"> 
        <ItemTemplate> 
            <h2><%#Server.HtmlEncode(Eval("ItemAttributes.Title"))%></h2> 
            Authors:  
            <%#Amazon.FormatAuthor(Eval("ItemAttributes.Author"))%> 
            <br />Price: 
            <%#Amazon.FormatPrice(Eval("ItemAttributes.ListPrice.Amount"))%> 
            <br />Sales Rank: 
            <%#Eval("SalesRank")%> 
            <br /> 
            <asp:HyperLink  
                id="lnkDetails" 
                NavigateUrl='<%#Eval("DetailPageURL")%>' 
                Text="View Details" 
                Tooltip= 
  '<%#Amazon.FormatDetailsTooltip(Eval("ItemAttributes.Title"))%>' 
                Runat="server" /> 
        </ItemTemplate> 
        </asp:TemplateField> 
        </Columns> 
    </asp:GridView>     
    <asp:ObjectDataSource 
        id="srcBooks" 
        TypeName="Amazon" 
        SelectMethod="GetBooks" 
        Runat="server"> 
        <SelectParameters> 
            <asp:ControlParameter 
                Name="CategoryId" 
                ControlId="menuCategories" 
                DefaultValue="1" /> 
        </SelectParameters> 
    </asp:ObjectDataSource>     
    </div> 
</asp:Content>

该页使用下列两个 ASP.NET 控件来显示书籍清单:Menu 控件和 GridView 控件。Menu 控件用来显示书籍类别的列表,而 GridView 控件用来显示书籍列表。


GridView 控件被绑定到 ObjectDataSource 控件。ObjectDataSource 控件继而调用 Amazon 类中的 GetBooks() 方法来检索书籍列表。

返回页首
默认页的 XHTML 功能
在生成 XHTML 页时,目标之一是将文档的结构与其表示形式截然分开。为了达到这一目标,不能在 Default.aspx 页中的任何 ASP.NET 控件上设置格式属性。页格式设置被封装在通过 ASP.NET 主题与该页相关联的外部样式表中。

ASP.NET 2.0 主题使您可以更容易地遵循 Web 标准,因为它们将所有表示内容与页分开。示例站点包含一个名为 SiteTheme 的主题,该主题包含单个样式表。该主题自动使用 Web.Config 文件中的下列配置设置与每个页相关联。

<pages  
      styleSheetTheme="SiteTheme" 
      masterPageFile="SiteMaster.master" />

您应该注意到,HTML 表没有用来创建页布局。尽管 XHTML 标准和可访问性标准都没有禁止您使用表来创建页布局,但这两个标准都建议您避免这样做。在示例站点中,页布局完全是由外部样式表确定的。页本身由两个 <div> 元素划分为两列。外部样式表包含确定这两个 <div> 元素位置的规则。 

最后,示例站点在提供页时使用内容协商。当使用能够理解 application/xhtml+xml MIME 类型的浏览器从 Web 站点请求页时,将以 MIME 类型提供该页;否则,将以 text/html 类型提供该页。

内容协商是用 Global.asax 文件中的以下事件处理程序完成的。

Sub Application_PreSendRequestHeaders(ByVal s As Object, _ 
  ByVal e As EventArgs) 
    If Array.IndexOf(Request.AcceptTypes, _ 
      "application/xhtml+xml") > -1 Then 
            Response.ContentType = "application/xhtml+xml" 
    End If 
End Sub

返回页首
默认页的可访问性功能
当无法提供 JavaScript 的文本等效内容时,WCAG 和 508 节可访问性准则都禁用客户端 JavaScript。为了满足这些准则,Default.aspx 页不依赖于客户端 JavaScript。即使您在浏览器中关闭 JavaScript,该页仍然能够正常工作。

为了满足该要求,在实现菜单时必须完成额外的工作。默认情况下,ASP.NET Menu控件为每个菜单项呈现 JavaScript 以处理客户端单击事件。但是,当为菜单项提供了 NavigateUrl 属性时,该菜单项将不再使用 JavaScript。

在示例站点中,为每个菜单项提供了一个指回到 Default.aspx 页的 NavigateUrl 属性。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码