如何将整个对象传递到中继器中的功能



在我的codebehind中我有:

List<Products> products = 
rptr.Datasource = products;

protected string GetVariants(Product product)
{
  //
}

在我的中继器中,我有:

<itemTemplate>
<li>  <%# Eval("Name") %>
<li>  <%# GetVariants(?????????????) %>
</itemTemplate>

如何将产品对象传递给getVariants方法?

(Product)Container.DataItem应该做技巧

而不是从标记页面回到方法中,如何创建一个新类来绑定中继器?这避免了所有问题。

public class RepeaterItem
{
    public string Name;
    public string Variants;
}

然后用新的数据源绑定中继器:

List<Products> products = //Get Products
List<RepeaterItem> repeaterItems = new List<RepeaterItem>();
foreach(var product in products)
{
    repeaterItems.Add(
        new RepeaterItem 
            { 
                Name = product.Name,
                Variants = GetVariants(product)
            });
}
rptr.DataSource = repeaterItems;

最新更新