2014-06-09 75 views
0

我在一个类中有一个列表,我想在其他类中使用此列表并将其绑定到gridview中。如何将列表绑定到GridView

在这个类使我的名单:

namespace sample_table 
{ 
public class ClassDal 
{ 
    public List<phone> GetAll() 
    { 
     using (PracticeDBEntities1 context = new PracticeDBEntities1()) 
     { 
      return context.phone.ToList(); 
     } 
    } 
} 
} 

,并在这个类我想使用它:

namespace sample_table 
{ 
public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     ClassDal obj = new ClassDal(); 
     obj.GetAll(); 

     GridView1.DataSource = obj; 
     GridView1.DataBind(); 
    } 
} 
} 

但我收到此异常:

数据源是无效的类型。它必须是IListSource,IEnumerable或IDataSource。

回答

0

你需要与列表当前正在与ClassDAL结合的GridView这显然不是一个列表,你的方法,所以你需要设置数据源GetAll()返回一个列表绑定说:

ClassDal obj = new ClassDal(); 
GridView1.DataSource = obj.GetAll(); 

或:

ClassDal obj = new ClassDal(); 
List<phone> list = obj.GetAll(); 
GridView1.DataSource = list; 
+0

tnx,我试了一下,但我收到这个异常行gridviw1.databind();在所选的数据源上找不到名为'obj'的字段或属性。 – user3721173

+0

你有什么异常? –

+0

在所选数据源中找不到名为'obj'的字段或属性。 – user3721173

0

使用ToList()扩展方法将查询转换为项目列表。

ClassDal obj = new ClassDal(); 
List<phone> list = obj.GetAll(); 
GridView1.DataSource = list.ToList(); 
+0

谢谢,我试过了,但我收到了这个异常:名称为'obj'的字段或属性未在所选数据源中找到。 – user3721173

+0

@ user3721173,请张贴您的网格视图html部分 – RGS