【问题标题】:GridView did not have any properties or attributes from with to generate columnsGridView 没有任何属性或属性来生成列
【发布时间】:2011-01-26 22:51:34
【问题描述】:

这是我遇到过的最奇怪的错误,因为它没有任何意义。我从我的控制器那里得到一个 IList。我什至可以编写一个 foreach 循环并将 TicketId 附加到 stringbuilder 并显示我的结果。

我可以设置断点并看到我返回了预期的结果....正如预期的那样!所有值都到位(没有拼写错误,因为我什至复制和粘贴)

但如果我尝试将其绑定到 GridView 或中继器,我会收到错误消息:ID 为“gv”的 GridView 的数据源没有任何属性或属性可用于生成列

示例 - 在此代码中如果我将 DataBinding 注释掉到 gridview gv - 我得到的结果与 TicketId 的一样:

LeadController controller = new LeadController();
        var leads = controller.SearchProducts(DateTime.Now.AddDays(-50),
                                                       DateTime.Now, string.Empty, string.Empty);

        var sb = new StringBuilder();

        foreach (LeadDto lead in (leads))
        {
            sb.Append(string.Format("{0} -----", lead.TicketId));
        }
        lblTop.Text = sb.ToString();

        gv.DataSource = leads;
        gv.DataBind();

但是如果 DataBinding 没有被注释 - 整个页面都会出现上述错误。 这是我的 ascx

<asp:TextBox ID="lblTop" runat="server" /><asp:GridView ID="gv" runat="server" AutoGenerateColumns="true" ></asp:GridView>

如果我这样改变我的网格视图:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" >
<Columns>
    <asp:TemplateField >
        <ItemTemplate>
            <%# Eval("TicketId") %>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

我收到一条错误消息:DataBinding:“DataTransferObjects.LeadDto”不包含名为“TicketId”的属性

但我可以在设置 DataSource 之后和 DataBinding 之前看到它...

我已经尝试关闭 VS2008 甚至重新启动我的电脑,以防万一它是一个神奇的童话错误......

请问有什么建议吗?

【问题讨论】:

  • 没有看到您的 LeadController 类,我很难确定问题所在。将绑定代码更改为 gv.DataSource =leads.AsEnumerable() 有什么作用?

标签: asp.net data-binding gridview


【解决方案1】:

您说LeadDto 对象有一个名为TicketId 的属性,但您确定它是属性 而不是字段?也就是说,在您的 LeadDto 类中,TicketId 是如何定义的?如果它被定义为成员变量,那么它不是属性:

public class LeadDto
{
     public int TicketId;

     ...
}

数据绑定只能绑定到属性

public class LeadDto
{
     public int TicketId { get; set; };

     ...
}

【讨论】:

  • 斯科特....你成功了!这正是我所做的。不知道为什么我一开始没有那样做——就像我下面的例子一样......非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-09-02
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
相关资源
最近更新 更多