3

リピーターにボタンがあり、このボタンクリックイベントでリピーターのデータ項目をループしたい。これが私のコードです:

 protected void btnPromotionButton_OnClick(object sender, EventArgs e)
    {
        try
        {
            foreach (RepeaterItem item in rptPromotionProducts.Items)
             {
               if (item.DataItem == null)
                {
                    continue;
                 }...

そして、ここに私のリピーターがあります:

 <asp:Repeater ID="rptPromotionProducts" runat="server" OnItemDataBound="rptPromotionProducts_OnItemDataBound">
     <ItemTemplate>
        <li>
         <asp:HyperLink runat="server" ID="hlProduct" CssClass="product_image">
         <asp:Image runat="server" ID="imgWindow" />
           </asp:HyperLink>
              <div class="product_info">
              <h3>
               <a href="#">
                  <%# Eval("Name") %></a></h3>
                  </div>
                   <div>
                   <asp:Button ID="btnPromotionButton" runat="server" Text="Sepete Ekle" OnClick="btnPromotionButton_OnClick" />
                   </div>
                  </div>
              </li>
             </ItemTemplate>
        </asp:Repeater>

item.DataItem は常に null になりますが、リピーターには行があります。ページの投稿後にループすることは可能ですか?

4

1 に答える 1

3

同様の質問はすでにここここで回答されています。

この質問に対する簡単な答えは NO です。ポストバック後は DataItem にアクセスできません。

データを取得する代替手段は、非表示フィールド、リピーターにリンクされた DataSource、またはデータを含むセッション オブジェクトを使用することです。

于 2013-01-17T14:46:18.097 に答える