C# 格式化下拉列表的数据源

C# 格式化下拉列表的数据源,c#,asp.net,linq,drop-down-menu,C#,Asp.net,Linq,Drop Down Menu,我正在尝试为下拉列表配置数据源。 数据库表中有字段“(id、value、parenttypeid) 父typeid可以是0或1,2..等, 我想根据父项和子项填充下拉列表 可以显示为-:> Parent1 Child1 Child2 Parent 2 我尝试通过排序结果来实现这一点,但无法获得格式。 如果有人有想法,请回复 谢谢我想你应该先按值和按父类型ID排序来解决这个问题 虽然如果你发布一些代码会有帮助,但是如果你需要帮助的话 但是我想它可能看起来像这样: var myLi

我正在尝试为下拉列表配置数据源。 数据库表中有字段“
(id、value、parenttypeid)
父typeid可以是0或1,2..等, 我想根据父项和子项填充下拉列表 可以显示为-:>

Parent1
    Child1
    Child2
Parent 2
我尝试通过排序结果来实现这一点,但无法获得格式。 如果有人有想法,请回复
谢谢

我想你应该先按
和按
父类型ID
排序来解决这个问题

虽然如果你发布一些代码会有帮助,但是如果你需要帮助的话

但是我想它可能看起来像这样:

var myList = myThings
   .OrderBy(t => t.Value)
   .ThenBy(t.ParentTypeId)
   .Select(t => new {
       Text = t.Value,
       Value = t.Id 
   });
类节点
{
公共字符串名称{get;set;}
公共列表子项{get;private set;}
公共节点(字符串名称)
{
Child=新列表();
名称=名称;
}
}
静态void Main(字符串[]参数)
{
var listItems=新列表();
var root=新节点(“根”);
root.Child.Add(新节点(“1”);
root.Child.Add(新节点(“3”);
var节点=新节点(“4”);
var nd=新节点(“5”);
添加(新节点(“7”));
node.Child.Add(nd);
node.Child.Add(新节点(“6”);
root.Child.Add(节点);
GetNames(根目录、列表项);
foreach(listItems中的var listItem)
{
Console.WriteLine(列表项);
}
}
静态void GetNames(节点父节点,列表结果)
{
结果.添加(父项.名称);
foreach(parent.child中的变量child)
{
GetNames(子级、结果);
}
}

在子元素前面添加
string
怎么样

if(parent)
   return element;
else
  return " - "+ element;

通过项目进行递归迭代怎么样?另外,在提问时包含一些代码也是一个不错的主意。如果你这样做了,帮助你会容易得多。你的问题已经得到了很好的答案,但你甚至没有接受一个。这是一种互谅互让的关系,伙计。如果你不愿意花2秒钟的时间接受答案,就不要再向别人求助了。嘿,伙计们,告诉我如何接受答案?@kasun:谢谢。好多了。
if(parent)
   return element;
else
  return " - "+ element;