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

マークアップ ページからメソッドをコールバックする代わりに、Repeater をバインドするための新しいクラスを作成するのはどうでしょうか? これにより、問題がすべて回避されます。

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 に答える