TreeView i doldurduğun tablo da kullanıcı yetkileriyle ilgili bir kolon eklersen çok daha basit olacaktır.
--------------
protected void BuildPages()
{
Treeview1.Nodes.Clear();
using (TekasoftContextDataContext pc = new TekasoftContextDataContext())
{
var mainc = pc.Select_MainNode();
foreach (var nod in mainc)
{
var ps = pc.BannerLists.Count(p => p.PageGuid == nod.ID.ToString()); // Burayı kullanıcı Yetkisine göre doldurabiliriz.
TreeNode mainNode = new TreeNode
mainNode.Text = nod.MenuName + "(" + ps.ToString() + ")";
mainNode.Value = nod.ID.ToString();
mainNode.Attributes.Add("Treetext", nod.MenuName.ToString());
mainNode.Attributes.Add("NavUrl", nod.Name.ToString());
mainNode.Expanded = true;
getChild(mainNode, mainNode.Value.ToString());
Treeview1.Nodes.Add(mainNode);
}
}
}
protected void getChild(TreeNode mainNode, string parentId)
{
using (TekasoftContextDataContext pc = new TekasoftContextDataContext())
{
var mainc = pc.Select_ChildPages(parentId);
foreach (var nod in mainc)
{
var ps = pc.BannerLists.Count(p => p.PageGuid == nod.ID.ToString()); // Burayı kullanıcı Yetkisine göre doldurabiliriz.
TreeNode childNode = new TreeNode();
childNode.Text = nod.MenuName + "(" + ps.ToString() + ")";
childNode.Value = nod.ID.ToString();
childNode.Attributes.Add("Treetext", nod.MenuName.ToString());
childNode.Attributes.Add("NavUrl", nod.Name.ToString());
childNode.Expanded = true;
getChild(childNode, childNode.Value.ToString());
mainNode.Nodes.Add(childNode);
}
}
}
-----------
BuildPages(); Page_load a yuarıda belirttiğim yere de kullanıcıların yetki Id lerine göre çekerek işi rahatlıkla halledebilirsin