2010-09-04 34 views
0

中繼查找控件我有一箇中繼器:在commandargument

 <asp:Repeater ID="rpt_Items" OnItemCommand="rpt_Items_ItemCommand" runat="server"> 
      <ItemTemplate> 
       <div class="item"> 
        <div class="fr"> 
         <asp:TextBox ID="tb_amount" runat="server">1</asp:TextBox> 
         <p> 
          <%# Eval("itemPrice") %> 
         </p> 
         <asp:LinkButton ID="lb_buy" CommandName="buy" runat="server">buy</asp:LinkButton> 
        </div> 
        <asp:HiddenField ID="hdn_ID" Value='<%# Eval("itemID") %>' runat="server" /> 
       </div> 
      </ItemTemplate> 
     </asp:Repeater> 

在中繼commandargument我想要得到的文本框和hiddenfield但我怎麼做到這一點?

protected void rpt_Items_ItemCommand(object sender, RepeaterCommandEventArgs e) 
{ 
    if (e.CommandName == "buy") 
    { 
     //ADD ITEM TO CART 
     Response.Write("ADDED"); 


     Product getProduct = db.Products.FirstOrDefault(p => p.ProductID == id); 
     if (getProduct != null) 
     { 
      CartProduct product = new CartProduct() 
      { 
       Name = getProduct.ProductName, 
       Number = amount, 
       CurrentPrice = getProduct.ProductPrice, 
       TotalPrice = amount * getProduct.ProductPrice, 
      }; 
      cart.AddToCart(product); 
     } 

    } 
} 

非常感謝!

回答

4

您不必通過在命令參數通過它,你可以用你的e.Item.FindControl()方法rpt_Items_ItemCommand裏面,如:

TextBox tb_amount = (TextBox)e.Item.FindControl("tb_amount"); 
HiddenField hdn_ID = (HiddenField)e.Item.FindControl("hdn_ID"); 
相關問題