后台获取Formview绑定的数据
我不知道该怎么形容,但是大概就是这么个意思吧
问题是这样的
我在前台Formview绑定了数据
但是编辑时我要获取这个List
无奈…实在不知道怎么获取了…
捣鼓了半天
终于找到了两种方法
一种依旧使用数据源
另外一种使用手动绑定
首先看下我的 实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace Harde.BookShop.Models { public class Status { public Status() { } public Status(int id) { this.Id = id; } private int id; /// <summary> /// 身份编号 /// </summary> public int Id { get { return id; } set { id = value; } } private string name; /// <summary> /// 身份名称 /// </summary> public string Name { get { return name; } set { name = value; } } private List<Permission> permissions = new List<Permission>(); /// <summary> /// 权限集合 /// </summary> public List<Permission> Permissions { get { return permissions; } set { permissions = value; } } } } |
其中Permission也是个实体
先说说第一种
数据源上我觉得没什么功夫可下..
那就从Formview上下手
DataBound事件大家不陌生了吧,
同样在Formview的DataBound事件里
写下
1 2 3 4 | if (fv_showStatus.CurrentMode == FormViewMode.Edit) { Status status = (Status)fv_showStatus.DataItem; } |
OK,搞定
FormviewMode那里大家根据需要改,或者干脆不写
下面看下第二种手动绑定
最开始我试着手动绑定到业务层的方法上
结果提示Datasource只能绑定IEnumerable、IDataSource、ILIst数据
那么事情就简单了
在业务层再写个方法 返回为LIst
1 2 3 4 5 6 7 8 9 10 11 | /// <summary> /// 根据ID得到Status(作为FormView数据源使用) /// </summary> /// <param name="id">身份Id</param> /// <returns>Status"集合"</returns> public static List<Status> getStatusByIdForFV(int id) { List<Status> list = new List<Status>(); list.Add(StatusService.getStatusById(id)); return list; } |
那么剩下我就不用写了
直接从返回值里取实体就可以了

没有评论▼