Hi,
I have a datagrid set up which displays a list of bought items in a shopping cart. When the customer checks out I want to be able to update the original products table by reducing the quantity bought from the quantity in stock. How do I reference each item in the datagrid and relate that back to the database ? This ensures the correct item's quantity in the Products table is reduded by the number purchased.
I'm using asp.net 1.1 with vbnet 2003 and connecting to an access database. Here is the datagrid code sample :
Code:
<asp:DataGrid id="dgCart" runat="server" OnItemDataBound="ComputeSum" ShowFooter="True" DataKeyField="intCartitemID" AutoGenerateColumns="False" OnDeleteCommand="dgCart_Delete" OnCancelCommand="dgCart_Cancel" OnEditCommand="dgCart_Edit" OnUpdateCommand="dgCart_Update">
<FooterStyle horizontalalign="Center" forecolor="Blue"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="intProductID" ReadOnly="True" HeaderText="ProductID">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="strMake" ReadOnly="True" HeaderText="Manufacturer">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="strProductName" ReadOnly="True" HeaderText="Product Name">
<HeaderStyle wrap="False" horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="strTypeDetails" ReadOnly="True" HeaderText="Product Type">
<HeaderStyle wrap="False" horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="strColour" ReadOnly="True" HeaderText="Colour">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Quantity">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.intQuantityOrder") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtQuantity" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.intQuantityOrder") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="curSalePrice" ReadOnly="True" HeaderText="ItemPrice" DataFormatString="£{0:F2}">
<HeaderStyle horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Amount">
<HeaderStyle wrap="False" horizontalalign="Center"></HeaderStyle>
<ItemStyle wrap="False" horizontalalign="Center"></ItemStyle>
<ItemTemplate>
£<%# FormatNumber(GetAmount(Container.DataItem("curSalePrice"), Container.DataItem("intQuantityOrder"))) %>
</ItemTemplate>
<FooterStyle wrap="False"></FooterStyle>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit Quantity">
<HeaderStyle wrap="False" horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
<FooterStyle wrap="False"></FooterStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete">
<HeaderStyle wrap="False" horizontalalign="Center"></HeaderStyle>
<ItemStyle horizontalalign="Center"></ItemStyle>
<FooterStyle wrap="False"></FooterStyle>
</asp:ButtonColumn>
</Columns>
</asp:DataGrid>
Thanks,