-1

クエリを書きたいsmn.ParentNode.ChildNodes。ShowInNavigation の値が false の場合、表示したくありません。Telerik サイト マップ ノードには、この属性があります。これを行うには?

using System;
using System.Web;
using Telerik.Sitefinity.Web;
using System.Linq;
using System.Data;

public partial class CustomTemplate_Navigation : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {       
        SiteMapNode smn = SiteMapBase.GetCurrentProvider().CurrentNode;

        while (smn.ParentNode != null)
        {
            if (smn.ParentNode.ParentNode == SiteMap.RootNode)
            {               
                siteMapControl_verticaltree.DataSource = smn.ParentNode.ChildNodes;/*this line will be write query*/
                siteMapControl_verticaltree.DataBind();
                break;
            }

            smn = smn.ParentNode;
        }
    }
}
4

2 に答える 2

0

このようなもの:

smn.ParentNode.ChildNodes.AsQueryable().Where(x => x.ShowInNavigation).ToList();
于 2013-01-18T15:46:39.587 に答える
0

次のようなことができます:(Linqifyだけでなく、キャストも必要です)(これを.NET MVC4プロジェクトで使用しました)

SiteMapNodeCollection coll = SiteMap.RootNode.ChildNodes;
IEnumerable<SiteMapNode> nodes = coll.Cast<SiteMapNode>();
var query = from node in nodes where Boolean.Parse(node["ShowInNavigation"]) == true select node;
于 2013-11-08T12:36:01.433 に答える