2011-06-28 47 views
0
<asp:Repeater ID="Cart" runat="server" onitemcommand="Cart_ItemCommand"> 
     <ItemTemplate> 
      <p class="cartline"> 
      <span class="cartvalue cartqty"><asp:TextBox ID="cartQty" runat="server" Text='<%#Eval("shoppingCartQty")%>'></asp:TextBox></span> 
      <span class="cartdelete cartadjust"> 
       <asp:HiddenField ID="cartID" value='<%#Eval("shoppingCartID") %>' runat="server" /> 
       <asp:LinkButton ID="cartDelete" runat="server" CommandName="DeleteFromCart" CommandArgument='<%#Eval("shoppingCartID") %>'><img src="img/but-delete.png" alt="delete item" title="delete shopping cart item" /></asp:LinkButton> 
      </span> 
      </p> 

     </ItemTemplate> 
    </asp:Repeater> 

<asp:LinkButton ID="cartRecalcButton" CssClass="cartrecalcbutton" runat="server" ToolTip="recalculate your shopping cart" onclick="cartRecalcButton_Click">&nbsp;</asp:LinkButton> 

我正在C#中構建我的第一個網站,我一直在關注如何迭代每個cartQty並更新數據庫。在ASP.NET網站中的Recalc購物車

我有一個存儲過程,準備更新每個購物車行,但需要傳遞cartid和cartQty。我試圖使用foreach(Control.Controls中的Control x)但無濟於事。幫幫我! (請...)

+0

請不要在標題中加入「ASP.Net C#」之類的東西。這就是標籤的用途。 –

回答

1

中繼器自己做迭代,你不必創建循環。 Here's來自w3schools的官方語法,但更相關的示例將是this。您可以使用存儲過程作爲數據源,但這不是必需的。

+0

羅伊我有中繼器工作正常。但是,如果某人修改了購物車中的數量並點擊了重新計算按鈕,那麼我是否需要通讀每一行來更新數據庫中相應的cartid數量? – ComfortablyNumb

+1

有幾種方法可以更新一行或調用行中元素更改的事件。如果你看這個問題的答案,你可以使用他的語法來查找有問題的行,然後在該記錄上執行你的存儲過程[鏈接](http://goo.gl/Q4Nmz)。但我可能會使用一些Ajax調用,比如這個人,爲了做內聯編輯[link](http://goo.gl/r4nbQ)。 –

+0

謝謝你珍貴的羅伊。我認爲這將會訣竅! – ComfortablyNumb