加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – GridView没有任何属性或属性来生成列

发布时间:2020-12-16 07:35:42 所属栏目:asp.Net 来源:网络整理
导读:这是我遇到的最奇怪的错误,因为它没有任何意义.我从我的控制器那里得到一个IList.我甚至可以编写一个foreach循环并将TicketId附加到stringbuilder并显示我的结果. 我可以放入断点并看到我有预期的结果返回….正如预期的那样!所有值都到位(没有拼写错误,因为
这是我遇到的最奇怪的错误,因为它没有任何意义.我从我的控制器那里得到一个IList.我甚至可以编写一个foreach循环并将TicketId附加到stringbuilder并显示我的结果.

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

但是,如果我尝试将其绑定到GridView或转发器,我会收到错误:具有id“gv”的GridView的数据源没有任何属性或属性可用于生成列

示例 – 在此代码中如果我将DataBinding注释掉到gridview gv – 我得到TicketId的结果为epxected:

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>

如果我改变我的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&甚至重新启动我的电脑,万一它是一个神奇的仙女虫….

请问有什么建议吗?

解决方法

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

public class LeadDto
{
     public int TicketId;

     ...
}

数据绑定只能绑定属性:

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

     ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读