在ASP.NET C#中将List<>绑定到ListView

8
我将翻译以下代码:

我有以下的代码:

<asp:ListView ID="lvDetail" runat="server">
                    <ItemTemplate>
                        <tr>
                            <td><%# Eval("ShpNo")%></td>
                            <td><%# Eval("QtyShp")%></td>
                            <td><%# Eval("NumPallets")%></td>
                        </tr>
                    </ItemTemplate>
                    <LayoutTemplate>
                        <table id="tbl1" runat="server">
                            <tr id="tr1" runat="server">
                                <td id="td1" runat="server">ShpNo</td>
                                <td id="td2" runat="server">QtyShp</td>
                                <td id="td3" runat="server">NumPallets</td>
                            </tr>
                            <tr id="ItemPlaceholder" runat="server">  
                            </tr>
                        </table>
                    </LayoutTemplate>
                </asp:ListView>

在后端代码中:

List<Visibility> ListVisibility = new List<Visibility>();
    public class Visibility
    {
        public int ShpNo;
        public int QtyShp;
        public int NumPallets;
        public string ETA;            
    }

List<Visibility> items = ListVisibility.FindAll(VisibItem => VisibItem.ETA == Calendar1.SelectedDate.ToShortDateString());
        lvDetail.DataSource = items;            
        lvDetail.DataBind();

但是当我绑定时,出现了以下错误:

<td><%# Eval("ShpNo")%></td>

DataBinding: 'AIS.WebVisibility+Visibility'不包含名称为'ShpNo'的属性。

为了从列表中获取正确的值,我需要做什么?


3
错误信息显示它找不到,例如,“ShpNo” 属性。也许自动绑定器不能用于公共字段,就像你所拥有的那样。一个属性看起来像这样:public int ShpNo { get; set; } - Cᴏʀʏ
1个回答

12

你有字段,而不是属性

public class Visibility
{
    public int ShpNo { get; set; }
    public int QtyShp { get; set; }
    public int NumPallets { get; set; }
    public string ETA { get; set; }
}

试一试


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接