asp.net 2.0中使用sitemapDATAsource做页面导航
发布时间:2006-10-14 3:51:44   收集提供:gaoqian

    在ASP.NET 2.0中,没有专门的页面导航控件,但可以使用SITEMAPdatasource配和DATALIST来实现。

    SITEMAPDATASOURCE控件中,需要特别的建立一个web.sitemap的XML文件,该文件中存贮网站的结构,
比如
<?xml version="1.0" encoding="utf-8" ?>

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

    <siteMapNode url="default.aspx?id=-1" title="首页">

            <siteMapNode url="default2.aspx?id=0" title="商品"/>

            <siteMapNode url="default3.aspx?id=1" title="社区"/>

    </siteMapNode>

</siteMap>
之后,在default.aspx中,写入代码:
<%@ Page Language="C#" %>

 

<script runat=server>

 

    protected void Page_Load()

    {

        int index = -1;

        Int32.TryParse(Request.QueryString["id"], out index);

 

        Tabs.SelectedIndex = index;

    }

       

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title>Untitled Page</title>

    <style>

        a

        {

            color: #000000;

            text-decoration: none;

        }

       

        .myTab

        {

            background: #6666ff;

            padding: 4px;

        }

 

        .myTabSelected

        {

            background: #ff00ff;

            padding: 4px;

        }

    </style>

 

</head>

<body>

    <form id="form1" runat="server">

    <div>

       

        <table>

        <asp:DataList RepeatDirection=Horizontal ID="Tabs" runat="server" DataSourceID="SiteMapDataSource1">

            <ItemTemplate>

                 <td width="4" height="20" valign="top" nowrap class="myTab">

                   <a href='<%# Eval("Url") %>'><%# Eval("Title") %></a>

                </td>

            </ItemTemplate>

           <SelectedItemTemplate>

                <td width="4" height="20" valign="top" nowrap class="myTabSelected">

                   <a href='<%# Eval("Url") %>'><%# Eval("Title") %></a>

                </td>

           </SelectedItemTemplate>

        </asp:DataList>

        </table>

        <asp:SiteMapDataSource ShowStartingNode=false ID="SiteMapDataSource1" runat="server" />

    </div>

    </form>

</body>

</html>


就可以实现简单的页面导航的效果了

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50