【发布时间】:2017-04-25 10:24:18
【问题描述】:
我有模特
public class ItemHistory
{
public int TotalItems;
public int ScannedItems;
public int PendingItems;
}
在按钮单击事件上,我想根据该值加载一个网格。 Button_Click 的代码
int TotalItems = Convert.ToInt32(lblItemsScanned.Text);
int ScannedItems = Convert.ToInt32(lblItemsScanned.Text);
int PendingItems = TotalItems - ScannedItems;
List<ItemHistory> ih = new List<ItemHistory>();
ih.Add(new ItemHistory
{TotalItems, ScannedItems, PendingItems});
gvrecap.DataSource = ih;
gvrecap.DataBind();
但是,它给了我以下错误:
无法使用集合初始化程序初始化类型“ConsignmentCreation.ItemHistory”,因为它没有实现“System.Collections.IEnumerable”
无法理解。请帮助...在此先感谢
感谢您的解决方案,但我现在在Databind(); 遇到了一个新问题
在所选数据源中找不到名为“TotalItems”的字段或属性。
下面是Gridview的排列方式:
<asp:GridView ID="gvrecap" runat="server"
AutoGenerateColumns="false" PagerSettings-Mode="NumericFirstLast" PageSize="25" Width="741px">
<Columns>
<asp:BoundField DataField="TotalItems" HeaderText="TotalItems" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="50" />
<asp:BoundField DataField="ScannedItems" HeaderText="ScannedItems" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="50" />
<asp:BoundField DataField="PendingItems" HeaderText="PendingItems" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="50" />
</Columns>
</asp:GridView>
【问题讨论】:
-
您不能使用列表进行绑定,因为它实现了 IEnumerable,而 ItemHistory 没有。看看here
-
编辑您的列,选择 TotalItems 列并确保“设计”部分中的(名称)拼写正确。对“数据”部分执行相同操作,并确保“数据属性名称”也正确。
标签: c# asp.net gridview ienumerable