0

在我的代码隐藏中,我有:

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


protected string GetVariants(Product product)
{
  //
}

在我的中继器中,我有:

<itemTemplate>

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

</itemTemplate>

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

4

2 回答 2

6

(Product)Container.DataItem应该做的伎俩

于 2012-11-07T15:30:36.440 回答
3

与其从你的标记页面回调一个方法,不如创建一个新的类来绑定你的中继器?这可以避免所有问题。

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

然后将Repeater与新的数据源绑定:

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;
于 2012-11-07T15:39:08.603 回答