asp.net+导航+母板+sitemap制作框架!

首先我想告诉大家其实做这个功能也可以用dv画出来,但我对那不熟练,也没作过!
所以用2.0做后台时我还想着在html里象1.1一样写个框架集不久ok了,没想到2.0已经不支持了!
就纳闷。。。然后在baidu,google上搜了一通才明白2.0里可以用导航+母版+sitemap搞定!
于是我就是试着做了一个,下面就来讲一下步骤:
1.首先我觉得这个需要大家把页面大概都做出来在用框架总合到一起好些!
  新建一个web.sitemap文件
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true" >
  <siteMapNode url="" title="CMS" description="">
    <siteMapNode url="" title="种类" description="" resourceKey="Cat">
      <siteMapNode url="Admin/Cat/CatAdd.aspx" title="种类管理" resourceKey="CatManager"></siteMapNode>
    </siteMapNode>
    <siteMapNode url="" title="帐号管理" description="" resourceKey="AccountsManager">
      <siteMapNode url="" title="管理员帐号管理" description="" resourceKey="AdminManager">
        <siteMapNode url="Admin/Admins/AdminAdd.aspx" title="添加管理员" resourceKey="AdminAdd"></siteMapNode>
        <siteMapNode url="Admin/Admins/AdminList.aspx" title="帐号管理" resourceKey="AdminAccountsManager"></siteMapNode>
      </siteMapNode>
      <siteMapNode url="" title="普通帐号管理" description="" resourceKey="CommonAccountsManager">
        <siteMapNode url="Admin/User/UserList.aspx" title="帐号管理" resourceKey="AccountsManagers"></siteMapNode>
      </siteMapNode>
    </siteMapNode>
  </siteMapNode>
</siteMap>
        <siteMapNode url="Admin/User/UserList.aspx" title="帐号管理" resourceKey="AccountsManagers"></siteMapNode>
      </siteMapNode>
    </siteMapNode>
  </siteMapNode>
</siteMap>

因为需要总和比较多所以我就删掉了很多,大家也可以看得到他类似xml文件,也是节点之间嵌套
但是能有一对根节点!

2.新建一个PageSum.master文件
然后在里面拖一个treeview控件和一个contentplaceholder控件
还有一个sitemapdatasource控件,这个控件很奇怪,他不用你去设置数据源,会自己去寻找匹配的web.sitemap文件,而且sitemap文件必须放在项目的根目录下,否则他无法找到,好象该名字也不行,
大家可以去试试!
这里我们需要给treeview设置数据源为sitemapdatasource控件
<body>
    <form id="form1" runat="server">
    <div>
        <table border="0" cellpadding="0" cellspacing="0" style="width: 790px; height: 536px">
            <tr>
                <td rowspan="1" style="width: 94px; height: 19px;">
                </td>
                <td align="center" valign="middle" style="height: 19px">
                   <asp:Localize ID="LocalizeTitle" runat=server Text='<%$ resources:title %>'></asp:Localize>
                </td>
            </tr>
            <tr>
                <td rowspan="1" style="width: 94px">
                    <asp:TreeView ID="treeViewCatList" runat="server" DataSourceID="sitemapDb" Height="502px" NodeIndent="10" meta:resourcekey="treeViewCatListResource1">
                    </asp:TreeView>
                </td>
                <td style="height: 501px; width: 737px;" align="center" valign="middle">
                    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                    </asp:ContentPlaceHolder>
                </td>
            </tr>
        </table>
    </div>
        <asp:SiteMapDataSource ID="sitemapDb" runat="server" />
    </form>
</body>

3.这样其实我们已经完成了主要任务了,就剩下将需要总合到框架里的页面加进来
首先我们随便挑一个页面吧,
.1.在他的page指令加上MasterPageFile="~/Admin/PageSum.master"  等号后面是你的master的路径
.2.想说下,我在做这步时最郁闷,我以为做完上面一步就ok了,结果点击节点页面是弹出一个单独的页面
   我马上想也面应该是显示在contentplaceholder里
   我就在每个也面里加上这个,就象下面
<asp:Content ContentPlaceHolderID=ContentPlaceHolder1 EnableViewState=true runat=server Visible=true>
    <div>
.......................一大堆东东!
    </div>
</asp:Content>
大家会发现我把表单都删了,其实我这样试出来之后自己也吓了一跳,呵呵!
不过去csdn了解原理之后就明白了,大家可以打开母板内容页的aspx页面就明白了
所一要加入页面除了page指令和包括div在内的东西都要喀嚓掉!

....好了,这样就完成了! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章