System.Web.SiteMapProvider
У меня есть, и я получаю все дерево (узлов) с помощью providerSiteMap.RootNode.ChildNodes
Перемещение SiteMapNode в начало списка
Для ChildNodes из RootNode
, я хочу переместить последний узел в верхней части (в качестве первого пункта).
ChildNodes: N1, N2, ... N9, N10
Я хочу, чтобы переместить последний узел 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();
и я стараюсь:
пункт переменная = providerSiteMap.RootNode.ChildNodes.Cast() .FirstOrDefault (x => x.Key == "9100");
var t = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Count;
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Remove(item);
t = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Count;
providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().ToList().Insert(0, item);
ToList().Count
то же самое до и после Remove(item)
и я стараюсь:
var item = providerSiteMap.RootNode.ChildNodes.Cast<SiteMapNode>().FirstOrDefault(x => x.Key == "9100");
var t = providerSiteMap.RootNode.ChildNodes.Count;
providerSiteMap.RootNode.ChildNodes.Remove(item);
t = providerSiteMap.RootNode.ChildNodes.Count;
providerSiteMap.RootNode.ChildNodes.Insert(0, item);
t = providerSiteMap.RootNode.ChildNodes.Count;
и я получаю Коллекция только для чтения об ошибке при попытке выполнить providerSiteMap.RootNode.ChildNodes.Remove(item);
Любые предложения?