带有自定义数据的 ListView

ListView with custom data

我是 ASP 的新手,我想将自己的数据发送到 ListView(我通常只使用模型)。所以我需要如下内容:

public class ProduktDetailClass
    {
        public Model.Produkt Produkt { get; set; }
        public int DopravaZdarmaOd { get; set; }
    }

public List<ProduktDetailClass> DetailProduktuListView_GetData([RouteData]string URLProdukt)
{
    var context = new Model.Entities();

    var mujProdukt = new Model.Produkt();
    mujProdukt = context.Produkt.Where(c => c.URL == URLProdukt).FirstOrDefault();

    List<ProduktDetailClass> produktDetail = new List<ProduktDetailClass>();
    produktDetail.Add(new
    {
        Produkt = mujProdukt,
        DopravaZdarmaOd = 600
    });

    return produktDetail;
}

和模板:

        <asp:ListView ID="DetailProduktuListView" runat="server"
            ItemType="List<ProduktDetailClass>"
            SelectMethod="DetailProduktuListView_GetData">

            <ItemTemplate>
                <tr>
                    <td colspan="2">
                        <h1 class="h1DetailProduktu"><%#Item.Nazev %></h1>
                    </td>
                </tr>
            </ItemTemplate>
        </asp:ListView>

我认为这是一个新手错误。也许我对 produktDetail.Add().

处的参数有错误的语法

编译器错误:

error CS1502: Některé argumenty přetěžované metody, která je nejlepší shodou pro deklaraci System.Collections.Generic.List.Add(TemplateProdukt.ProduktDetailClass), jsou neplatné.

error CS1503: Argument 1: Nelze převést z typu AnonymousType#1 na typ TemplateProdukt.ProduktDetailClass.

您正在尝试添加 anonymous 类型,但您需要像这样将 ProduktDetailClass 添加到您的列表中:-

List<ProduktDetailClass> produktDetail = new List<ProduktDetailClass>();
produktDetail.Add(new ProduktDetailClass
    {
        Produkt = mujProdukt,
        DopravaZdarmaOd = 600
    });

List<ProduktDetailClass> produktDetail = new List<ProduktDetailClass>() 表示 ProduktDetailClass 对象的列表。 因此,您不能将任何鼠标类型添加到 produktDetail

试试这个..

List<ProduktDetailClass> produktDetail = new List<ProduktDetailClass>();
ProduktDetailClass obj=new ProduktDetailClass ();
obj.Produkt =mujProdukt;
obj.DopravaZdarmaOd =600;
produktDetail.Add(obj);