【发布时间】:2013-05-10 17:40:56
【问题描述】:
错误信息:
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 i也是, e 它不显示。
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 对象。
有人知道我做错了什么吗?
【问题讨论】:
-
如果你尝试 Reponse.Write(db.Proprietari.Count().ToString()) 它会给你一个 1 吗?
-
是的,它返回一个 1,这是正确的,因为应该只有 1 行。
-
你要按部就班地发展。 1) 将测试记录插入数据库,并看到这些记录显示在
GridView。 2)然后开发插入/更新/删除。 -
@Win 对不起,我没有得到你,我已经在他们存在的数据库中插入了测试记录我确定,我想做的是让他们显示导致我发布的错误的原因,我不需要 gridview 中的任何其他内容,而是查看我插入的行。
-
请确保
Proprietar类的每个属性都有getter 和setter。如果仍然无法正常工作,请创建一个这样的集合(没有数据库)并调试/测试 GridView - stackoverflow.com/a/16407618/296861
标签: asp.net gridview data-binding