将GridView绑定到对象列表时出现ASP.NET错误?

时间:2013-05-10 17:40:56

标签: asp.net gridview data-binding

错误消息:

  

具有ID“FormProprietari”的GridView的数据源没有   从中生成列的任何属性或属性。确保   您的数据源包含内容。

我有一个ASP.NEt应用程序,在其中我尝试将GridView绑定到List<T>个对象,从网上我可以告诉它应该是可能的。

这是我的GridView

<asp:GridView ID="FormProprietari" runat="server">
        <Columns>
            <asp:TemplateField >
                 <ItemTemplate> 
                    <%#((Lab_TAP_web.Proprietar)Container.DataItem).NumeProprietar%> 
                 </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField >
                 <ItemTemplate> 
                    <%#((Lab_TAP_web.Proprietar)Container.DataItem).PrenumeProprietar%> 
                 </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField >
                 <ItemTemplate> 
                    <%#((Lab_TAP_web.Proprietar)Container.DataItem).ProprietarID%> 
                 </ItemTemplate>
            </asp:TemplateField>
        </Columns>

    </asp:GridView>

这是我向数据库添加我定义的Proprietar类的新对象然后重新绑定gridview以显示它的函数,我应该提到数据库是空的,gridview也是如此我,它没有出现。

protected void Button2_Click(object sender, EventArgs e)
        {
            var Nume = TBNumeProprietar.Text;
            var Prenume = TBPreNumeProprietar.Text;

            MyCars db = DBSilo.db;

            Proprietar newOwner = new Proprietar();
            newOwner.NumeProprietar = Nume;
            newOwner.PrenumeProprietar = Prenume;
            newOwner.ProprietarID = (db.Proprietari.Count() + 1);
            //newOwner.ProprietarID = 1;



            db.Proprietari.InsertOnSubmit(newOwner);
            db.SubmitChanges();

            try
            {
                FormProprietari.DataSource = db.Proprietari.ToList();
            }
            catch (Exception)
            {

                throw;
            }
            FormProprietari.DataBind();           
        }

问题是我检查了带有断点的数据源List<Proprietar>,并且列表始终包含Proprietar对象。

有没有人知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

从评论移至答案。

请确保您为Proprietar类的每个属性设置getter和setter -

public class Proprietar
{
    public string NumeProprietar { get; set; }
    public string PrenumeProprietar { get; set; }
    public int ProprietarID { get; set; }
}