创建动态导航(使用SqlSiteMapProvider)

本文介绍了如何利用SqlSiteMapProvider结合Menu和TreeView控件,创建基于SQL Server的动态网站导航。通过创建SiteMap表和存储过程,配置连接字符串和缓存设置,实现了数据库驱动的导航菜单,并提供了详细的配置步骤链接。

使用Menu+TreeView+sitemap+SiteMapDataSource可以快速创建动态导航

asp.net提供的Provider是XmlSiteMapProvider,如果要使用SQL SERVER数据库,则要继承SiteMapProvider,重写部分方法.MSDN上已经有实现的SqlSiteMapProvider,可用于Sql7/2000/2005.

详细内容: http://www.microsoft.com/china/msdn/library/data/sqlserver/0602WickedCode.mspx?mfr=true (中文)

http://msdn.microsoft.com/zh-cn/magazine/cc163787(en-us).aspx(英文)

 

使用SqlSiteMapProvider(以下内容都可在上面链接页面中找到,英文页面更加详细)

1.创建数据库(没有具体要求,可以用aspnetdb)

2.创建SiteMap表和存储过程

CREATE TABLE [dbo].[SiteMap] (
    [ID] [int] NOT NULL,
    [Title] [varchar] (32) NOT NULL,
    [Description] [varchar] (512),
    [Url] [varchar] (512),
    [Roles] [varchar] (512),
    [Parent] [int]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[SiteMap] ADD
    CONSTRAINT [PK_ID] PRIMARY KEY  CLUSTERED
    (
        [ID]
    ) ON [PRIMARY]
GO

 

3.首先注册缓存:

aspnet_regSQL –S localhost –E –d 数据库名 -ed
aspnet_regSQL –S localhost –E –d 数据库名 –t SiteMap -et

4.配置Config:  

<connectionStrings>
        <add name="SiteMapConnectionString"
      connectionString="server=localhost;database=数据库名;uid=sa;pwd="
      providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
        <siteMap>
            <providers>
                <add name="SqlSiteMapProvider" type="SqlSiteMapProvider" securityTrimmingEnabled="true"
          connectionStringName="SiteMapConnectionString"
          sqlCacheDependency="CommandNotification" />
            </providers>
        </siteMap>
        <caching>
            <sqlCacheDependency enabled="true" pollTime="5000">
                <databases>
                    <add name="aspnetdb"
                      connectionStringName="SiteMapConnectionString" />
                </databases>
            </sqlCacheDependency>
        </caching>
    </system.web>

 

5.剩下的工作就可以像web.sitemap一样使用SiteMapDataSource+Menu/TreeView制作动态导航了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值