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 总是为空,但是中继器有行。是否可以在页面发布和返回后循环?

4

1 回答 1

3

类似的问题已经在这里这里得到了回答。

这个问题的简短回答是否定的。回发后您无法访问 DataItem。

检索数据的替代方法是使用隐藏字段、链接到中继器的数据源或包含数据的会话对象。

于 2013-01-17T14:46:18.097 回答