C# 将SiteMapNode移动到列表顶部
我有C# 将SiteMapNode移动到列表顶部,c#,nodes,sitemapprovider,C#,Nodes,Sitemapprovider,我有System.Web.SiteMapProvider,我使用providerSiteMap.RootNode.ChildNodes 对于RootNode中的childnodes,我希望将最后一个节点移动到顶部(作为第一项) 我要移动最后一个节点N10: ChildNodes: N10, N1, N2, ...N9 我试试这个: var providerSiteMap = GetProviderSiteMap(sRoles); var dSource = n
System.Web.SiteMapProvider
,我使用providerSiteMap.RootNode.ChildNodes
对于RootNode
中的childnodes,我希望将最后一个节点移动到顶部(作为第一项)
我要移动最后一个节点N10:
ChildNodes: N10, N1, N2, ...N9
我试试这个:
var providerSiteMap = GetProviderSiteMap(sRoles);
var dSource = new SiteMapDataSource { Provider = providerSiteMap };
var nodeList = providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listaNodos = new List<SiteMapNode>();
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Remove(item);
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Insert(0, item);
dSource.DataBind();
//enlazamos
TreeView1.DataSource = dSource;
TreeView1.DataBind();
var providerSiteMap = GetProviderSiteMap(sRoles);
var dSource = new SiteMapDataSource { Provider = providerSiteMap };
var nodeList = providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listaNodos = new List<SiteMapNode>();
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
List<SiteMapNode> children2 = new List<SiteMapNode>(providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>());
var t = children2.Count;
children2.Remove(item);
t = children2.Count;
children2.Insert(0, item);
t = children2.Count;
var nodesChildren = new SiteMapNodeCollection(children2.ToArray());
providerSiteMap.RootNode.ChildNodes = nodesChildren;
// refresh ??
providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
当我尝试执行providerSiteMap.RootNode.ChildNodes.Remove(项)时,我得到的集合是只读的错误代码>
有什么建议吗?我尝试一下:
var providerSiteMap = GetProviderSiteMap(sRoles);
var dSource = new SiteMapDataSource { Provider = providerSiteMap };
var nodeList = providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listaNodos = new List<SiteMapNode>();
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Remove(item);
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Insert(0, item);
dSource.DataBind();
//enlazamos
TreeView1.DataSource = dSource;
TreeView1.DataBind();
var providerSiteMap = GetProviderSiteMap(sRoles);
var dSource = new SiteMapDataSource { Provider = providerSiteMap };
var nodeList = providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listaNodos = new List<SiteMapNode>();
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
List<SiteMapNode> children2 = new List<SiteMapNode>(providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>());
var t = children2.Count;
children2.Remove(item);
t = children2.Count;
children2.Insert(0, item);
t = children2.Count;
var nodesChildren = new SiteMapNodeCollection(children2.ToArray());
providerSiteMap.RootNode.ChildNodes = nodesChildren;
// refresh ??
providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var providerSiteMap=GetProviderSiteMap(sRoles);
var dSource=new SiteMapDataSource{Provider=providerSiteMap};
var nodeList=providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listandos=新列表();
var item=providerSiteMap.RootNode.ChildNodes.Cast().FirstOrDefault(x=>x.Key==“9100”);
List children2=新列表(providerSiteMap.RootNode.ChildNodes.Cast());
var t=儿童2.计数;
儿童2.移除(项目);
t=儿童2.计数;
儿童2.插入(0,项目);
t=儿童2.计数;
var nodesChildren=newsitemapnodecollection(children2.ToArray());
providerSiteMap.RootNode.ChildNodes=NodeChildren;
//刷新??
providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var providerSiteMap = GetProviderSiteMap(sRoles);
var dSource = new SiteMapDataSource { Provider = providerSiteMap };
var nodeList = providerSiteMap.GetChildNodes(providerSiteMap.RootNode);
var listaNodos = new List<SiteMapNode>();
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
List<SiteMapNode> children2 = new List<SiteMapNode>(providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>());
var t = children2.Count;
children2.Remove(item);
t = children2.Count;
children2.Insert(0, item);
t = children2.Count;
var nodesChildren = new SiteMapNodeCollection(children2.ToArray());
providerSiteMap.RootNode.ChildNodes = nodesChildren;
// refresh ??
providerSiteMap.GetChildNodes(providerSiteMap.RootNode);