您的位置:首页 > 移动开发

创建动态导航(使用SqlSiteMapProvider)

2009-05-08 11:26 393 查看
使用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制作动态导航了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: