当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET 2.0:如何将asp:Menu绑定到SqlDataSource?

如何解决《ASP.NET2.0:如何将asp:Menu绑定到SqlDataSource?》经验,为你挑选了1个好方法。

我发现了如何将asp:Menu绑定到XML.我已经找到了如何将asp:Menu绑定到站点地图(这实际上是将它绑定到XML).如何将asp:Menu绑定到数据库?

.NET Framework提供了多个数据源:

HierarchicalDataSourceControl

的XmlDataSource

的SiteMapDataSource

DataSourceControl

的SqlDataSource

的AccessDataSource

使用LinqDataSource

我想使用一个表示SQL Server表中的数据.数据以每个人使用的标准分层格式存储:

NodeID    ParentNodeID    Caption        Url
========  ==============  =========      =================
{3234...  {3632...        stackoverflow  http://stackov...
{3632...  (null)          Questions      ~/questions.aspx
{3233...  (null)          Tags           ~/tags.aspx
{3235...  {3632...        google         http://www.goo...

返回所有行的查询将是:

SELECT * FROM Nodes

微软打算用什么方法将这些数据混合到asp:Menu中?


更新: aspalliance.com上有一篇很好的文章:使用ASP.NET 2.0构建数据库驱动的分层菜单.不幸的是,它描述了如何执行XML数据绑定; 而我对数据库绑定感兴趣.



1> splattne..:

aspalliance.com上有一篇很好的文章:使用ASP.NET 2.0构建数据库驱动的分层菜单.每个步骤都有解释并很好地说明.

"在本文中,迈克尔演示了如何使用ASP.NET 2.0创建一个只有几行代码的数据库驱动的分层菜单.这是一本必读教程,适用于需要专业菜单的人,该菜单功能强大且设计简单灵活. "

代码可以是:

protected void LoadData()
{
    DataSet ds = new DataSet();
    string connStr = YOUR_CONNECTION_STRING_HERE;
    using(SqlConnection conn = newSqlConnection(connStr))
    {
      string sql = "Select NodeID, Caption, Url, ParentID from Menu";
      SqlDataAdapter da = newSqlDataAdapter(sql, conn);
      da.Fill(ds);
      da.Dispose();
    }
    ds.DataSetName = "Menus";
    ds.Tables[0].TableName = "Menu";
    DataRelation relation = newDataRelation("ParentChild",
     ds.Tables["Menu"].Columns["NodeID"],
     ds.Tables["Menu"].Columns["ParentID"], true);

    relation.Nested = true;
    ds.Relations.Add(relation);

    xmlDataSource.Data = ds.GetXml();
}

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有