首页 新闻 搜索 专区 学院

DevExpress.XtraGrid.GridControl绑定数据后不能修改,请助!

0
悬赏园豆:5 [已解决问题] 解决于 2012-04-27 15:41

显示控件是DevExpress.XtraGrid.GridControl

如:gridControl1.DataSource = context.users; 一切正常,users为映射到库里一张表的实体

(应用ado.net entity技术)

但JOIN就不行了,

var query = from user in users
join book in books
on user.ID
equals book.ID
select new
{
user.ID,
user.NAME,
book.BookName,
book.NUM
};

gridControl1.DataSource = query ; //users,books分别为映射到库里一张表的实体

显示正常,数据也正是我想要的,但界面不能修改,不知道为什么?请求帮助!

py_study的主页 py_study | 初学一级 | 园豆:8
提问于:2012-04-19 16:37
< >
分享
最佳答案
1
select new
{
user.ID,
user.NAME,
book.BookName,
book.NUM
};

你的Linq查询得到的是一个匿名对象的集合,就比如你用GridControl绑定一个简单数组做数据源一样,都是无法编辑的。

收获园豆:5
Sun.M | 菜鸟二级 |园豆:333 | 2012-04-19 17:00

谢谢你的解答!

那想要JOIN两个表后绑定到GridControl上去可编辑,怎么做?

py_study | 园豆:8 (初学一级) | 2012-04-19 18:31

@py_study: 其实你既然要用到JOIN,那说明你这两个实体间肯定是有关联的,那你在设计模型的时候,就应该指定它们的关联关系,这样绑定一个实体上去就可以了。

public class user{

//关联
public EntityCollection<book>  BorrowedBooks{get;set;}
}

public class book{
//对应上面的关联
public user User{get;set;}
}

最后你绑定一个实体就可以了,比如你上面的那个绑定可以变成下面的:
gridControl1.DataSource =  context.users;

然后设置一下要显示的列:

 希望可以帮助到你。

Sun.M | 园豆:333 (菜鸟二级) | 2012-04-20 09:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册