PDA

View Full Version : پر کردن treeview



reza11_2005
سه شنبه 03 فروردین 1400, 09:22 صبح
سلام عرض ادب و احترام من می خواهم treeview را به روش entity framework را به روش EF Designer پر کنم از الگوی
GenericRepository
دارم استفاده می کنم می خواهم از دیتابیس فراخونی کنم و به کار بر نشان بدام

جدول سه قسمت دارد id -FullNameGroup -Parent

این هم کد :

public virtual IEnumerable<TEntity> Get(Expression<Func<TEntity, bool>> where = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderby = null, string includes = "")
{
IQueryable<TEntity> query = _dbSet;

if (where != null)
{
query = query.Where(where);
}

if (orderby != null)
{
query = orderby(query);
}

if (includes != "")
{
foreach (string include in includes.Split(','))
{
query = query.Include(include);
}
}
return query.ToList();
}

و این کدی که در Load مورد استفاده قرار گرفته
var Node = db.PersonGroupsRepository.Get(a=>a.Parent==0);
foreach (var item in Node)
{
TreeNode RootNode = new TreeNode(item.FullNameGroup);
PersonGroups PG = item as PersonGroups;
var ChildNode = db.PersonGroupsRepository.Get(b => b.Parent == PG.Id);
foreach (var child in ChildNode)
{
TreeNode ChildNodeTree = new TreeNode(child.FullNameGroup);
RootNode.Nodes.Add(ChildNodeTree);
}

TreeView.Nodes.Add(RootNode.ToString());
اما موردی که داره فقط پدر نشان می دهد فرزندان نشان نمی دهد دقیق نمی دانم مشکلش کجاست ممنون می شوم دوستان به من یاری برسانند

the king
سه شنبه 03 فروردین 1400, 14:55 عصر
سلام عرض ادب و احترام من می خواهم treeview را به روش entity framework را به روش EF Designer پر کنم از الگوی
GenericRepository
دارم استفاده می کنم می خواهم از دیتابیس فراخونی کنم و به کار بر نشان بدام

جدول سه قسمت دارد id -FullNameGroup -Parent

این هم کد :

public virtual IEnumerable<TEntity> Get(Expression<Func<TEntity, bool>> where = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderby = null, string includes = "")
{
IQueryable<TEntity> query = _dbSet;

if (where != null)
{
query = query.Where(where);
}

if (orderby != null)
{
query = orderby(query);
}

if (includes != "")
{
foreach (string include in includes.Split(','))
{
query = query.Include(include);
}
}
return query.ToList();
}

و این کدی که در Load مورد استفاده قرار گرفته
var Node = db.PersonGroupsRepository.Get(a=>a.Parent==0);
foreach (var item in Node)
{
TreeNode RootNode = new TreeNode(item.FullNameGroup);
PersonGroups PG = item as PersonGroups;
var ChildNode = db.PersonGroupsRepository.Get(b => b.Parent == PG.Id);
foreach (var child in ChildNode)
{
TreeNode ChildNodeTree = new TreeNode(child.FullNameGroup);
RootNode.Nodes.Add(ChildNodeTree);
}

TreeView.Nodes.Add(RootNode.ToString());
اما موردی که داره فقط پدر نشان می دهد فرزندان نشان نمی دهد دقیق نمی دانم مشکلش کجاست ممنون می شوم دوستان به من یاری برسانند

خود RootNode رو باید Add کنید، بجای RootNode که شامل یک سری فرزند ئه، ()RootNode.ToString رو Add کردید. طبعا وقتی تبدیل به string بشه دیگه string فرزند نداره.