记录Harde学习成长生活的点点滴滴.
« »
2009-09-22
DotNet

323 次浏览

后台获取Formview绑定的数据

我不知道该怎么形容,但是大概就是这么个意思吧
问题是这样的
我在前台Formview绑定了数据
但是编辑时我要获取这个List
无奈…实在不知道怎么获取了…

捣鼓了半天
终于找到了两种方法
一种依旧使用数据源
另外一种使用手动绑定

首先看下我的 实体类

?Download Status.cs
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事件里
写下

?View Code CSHARP
1
2
3
4
if (fv_showStatus.CurrentMode == FormViewMode.Edit)
        {
            Status status = (Status)fv_showStatus.DataItem;
        }

OK,搞定
FormviewMode那里大家根据需要改,或者干脆不写

下面看下第二种手动绑定
最开始我试着手动绑定到业务层的方法上
结果提示Datasource只能绑定IEnumerable、IDataSource、ILIst数据
那么事情就简单了
在业务层再写个方法 返回为LIst就可以了

?View Code CSHARP
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;
        }

那么剩下我就不用写了
直接从返回值里取实体就可以了

日志信息 »

该日志于2009-09-22 22:53由 harde 发表在DotNet分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

随机日志

没有评论

发表评论 »

使用新浪微博登陆

返回顶部
分享按钮