如下表:
信息表
id name upid
1 新闻 null
2 娱乐 null
3 视频 1
4 图片 1
5 评论 1
6 明星 2
7 电影 2
信息表
id name upid
1 新闻 null
2 娱乐 null
3 视频 1
4 图片 1
5 评论 1
6 明星 2
7 电影 2
解决方案 »
- LinkButton问题???
- 想把office文档实现像百度文库那样阅览、 只有先转换pdf 、然后在利用SWFTools+FlexPaper 进行阅览、、有问题?
- 显示数据问题,求教!
- ASP.net怎么访问不了一个类?请指点!
- Gridview列的问题(在线等 立刻给分本菜鸟就30分了)
- 想请问同行们,你们在淘宝网之类购物网站买过东西吗?质量如何?希望能帮我参考一下。
- HttpContext成员中 Application、Cache、Session、Items的区别与使用特点?
- form验证问题
- 有关公告栏的建立问题,急~~~
- 精通网页设计和ASP程序设计者请进来,特产旅游网站求合作
- 求一个asp.net c#的根据硬盘、CPU 信息注册的示例源码。
- asp.net判断datatable1的哪几个值是根据datatable2中的值查出来的
http://blog.csdn.net/wangxiaotao361523/article/details/5485999
//在Model层或者业务处理里面
public List<SelectListItem> getTypeData()
{
//创建新元素
List<SelectListItem> P_Item = new List<SelectListItem>(); //设置默认数据
P_Item.Add(new SelectListItem() { Text = "请选择分类", Value = "0", Selected = true }); //数据表数据筛选 并转化为list对象
List<Yr_InfoType> P_Table = DbQuery.OrderBy(m => m.Yr_InfoType_ID).ToList(); //数据循环
foreach (var P_ItemData in P_Table.Where(m=>m.Yr_InfoType_UpID==null))
{
//数据元素填充
P_Item.Add(new SelectListItem() { Text = "--"+P_ItemData.Yr_InfoType_Name, Value = P_ItemData.Yr_InfoType_ID.ToString() }); //子类绑定
List<SelectListItem> ChildList = getChildTypeList(P_ItemData.Yr_InfoType_ID, P_Table); //循环
foreach (var C_Item in ChildList)
{
P_Item.Add(new SelectListItem() { Text = "---->" + C_Item.Text, Value = C_Item.Value });
}
}
return P_Item;
} /// <summary>
/// 递归绑定数据
/// </summary>
/// <param name="FID">父级ID</param>
/// <param name="objtabList">数据表对象</param>
public List<SelectListItem> getChildTypeList(int FID, List<Yr_InfoType> list)
{
//创建新元素
List<SelectListItem> C_Item = new List<SelectListItem>(); //数据表数据筛选 并转化为list对象
List<Yr_InfoType> C_Table = list.Where(m => m.Yr_InfoType_UpID == FID).OrderBy(m => m.Yr_InfoType_ID).ToList(); //数据循环
foreach (var item in C_Table)
{
//数据元素填充
C_Item.Add(new SelectListItem() { Text = item.Yr_InfoType_Name, Value = item.Yr_InfoType_ID.ToString() }); //递归绑定
C_Item.AddRange(getChildTypeList(item.Yr_InfoType_ID, list));
} return C_Item;
}
控制器里面定义一个ViewBag:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
ViewBag.Info = Info.getTypeData();
base.OnActionExecuted(filterContext); }在视图页面获取ViewBag:
@Html.DropDownListFor(m => m.Yr_InfoType_UpID, new List<SelectListItem>(ViewBag.Info))
public List<SelectListItem> getTypeData()
{
//创建新元素
List<SelectListItem> P_Item = new List<SelectListItem>(); //设置默认数据
P_Item.Add(new SelectListItem() { Text = "请选择分类", Value = "0", Selected = true }); //数据表数据筛选 并转化为list对象
List<Yr_InfoType> P_Table = DbQuery.OrderBy(m => m.Yr_InfoType_ID).ToList(); //数据循环
foreach (var P_ItemData in P_Table.Where(m=>m.Yr_InfoType_UpID==null))
{
//数据元素填充
P_Item.Add(new SelectListItem() { Text = "--"+P_ItemData.Yr_InfoType_Name, Value = P_ItemData.Yr_InfoType_ID.ToString() }); //子类绑定
List<SelectListItem> ChildList = getChildTypeList(P_ItemData.Yr_InfoType_ID, P_Table); //循环
foreach (var C_Item in ChildList)
{
P_Item.Add(new SelectListItem() { Text = "---->" + C_Item.Text, Value = C_Item.Value });
}
}
return P_Item;
} /// <summary>
/// 递归绑定数据
/// </summary>
/// <param name="FID">父级ID</param>
/// <param name="objtabList">数据表对象</param>
public List<SelectListItem> getChildTypeList(int FID, List<Yr_InfoType> list)
{
//创建新元素
List<SelectListItem> C_Item = new List<SelectListItem>(); //数据表数据筛选 并转化为list对象
List<Yr_InfoType> C_Table = list.Where(m => m.Yr_InfoType_UpID == FID).OrderBy(m => m.Yr_InfoType_ID).ToList(); //数据循环
foreach (var item in C_Table)
{
//数据元素填充
C_Item.Add(new SelectListItem() { Text = item.Yr_InfoType_Name, Value = item.Yr_InfoType_ID.ToString() }); //递归绑定
C_Item.AddRange(getChildTypeList(item.Yr_InfoType_ID, list));
} return C_Item;
}
控制器里面定义一个ViewBag:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
ViewBag.Info = Info.getTypeData();
base.OnActionExecuted(filterContext); }在视图页面获取ViewBag:
@Html.DropDownListFor(m => m.Yr_InfoType_UpID, new List<SelectListItem>(ViewBag.Info))