ajw*_*aka 4 asp.net data-binding gridview
这是我遇到的最奇怪的错误,因为它没有任何意义.我从我的控制器那里得到一个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();
Run Code Online (Sandbox Code Playgroud)
但如果没有注释DataBinding - 整个页面错误与上述错误.这是我的ascx
<asp:TextBox ID="lblTop" runat="server" /><asp:GridView ID="gv" runat="server" AutoGenerateColumns="true" ></asp:GridView>
Run Code Online (Sandbox Code Playgroud)
如果我改变我的gridview:
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField >
<ItemTemplate>
<%# Eval("TicketId") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息: DataBinding:'DataTransferObjects.LeadDto'不包含名为'TicketId'的属性.
但是我可以在设置DataSource之后和DataBinding之前看到它...
我已经尝试关闭VS2008甚至重新启动我的电脑以防它是一个神奇的仙女虫....
请问有什么建议吗?
Sco*_*ell 18
你说LeadDto对象有一个名为的属性TicketId,但你确定它是属性而不是字段吗?也就是说,在你的LeadDto课堂上如何TicketId定义?如果它被定义为成员变量,那么它不是属性:
public class LeadDto
{
public int TicketId;
...
}
Run Code Online (Sandbox Code Playgroud)
数据绑定只能绑定属性:
public class LeadDto
{
public int TicketId { get; set; };
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9375 次 |
| 最近记录: |