Я пишу систему массового заказа, и одним из требований является возможность набирать несколько количеств различных продуктов и добавлять их все в корзину. Я использую представление списка, чтобы заполнить свои продукты в соответствии с группами продуктов и показываю только 10 продуктов одновременно.
Итак, мне нужно сохранить количество, введенное в Список.
Как я пытаюсь это сделать, это заполнить DataTable текущими продуктами. L oop выбрасывает этот Datatable и добавляет продукты, у которых есть количества, в Список, когда страница меняется или клиент выбирает следующую группу продуктов, и когда нажимается кнопка «Добавить в корзину», он добавляет все элементы в Списке к оформлению заказа. Таблица в моей таблице MySQL.
Если не существует другого и намного более простого способа заполнения представления списка без DataTable.
Это представление списка
OnPagePropertiesChanging="lv_groups_PagePropertiesChanging" DataKeyNames="id" OnSelectedIndexChanging="lv_groups_SelectedIndexChanging">
<LayoutTemplate>
<table class="tbl-lv" style="width: 100%; margin-top: -15px; margin-bottom: -15px; padding:10px">
<tr style="height:30px">
<th style="width: 50%;">Product
</th>
<th style="width: 10%">Unit Size
</th>
<th style="width: 10%">Unit
</th>
<th style="width: 10%">Price (per unit)
</th>
<th style="width: 20%">QTY
</th>
</tr>
<asp:PlaceHolder runat="server" ID="groupPlaceHolder1"></asp:PlaceHolder>
<tr style="height:30px">
<td colspan="5">
<asp:DataPager ID="DataPager1" runat="server" PagedControlID="lv_groups" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ShowLastPageButton="False" ShowNextPageButton="False" ButtonType="Button" ButtonCssClass="btn btn-primary" RenderNonBreakingSpacesBetweenControls="false" />
<asp:NumericPagerField ButtonType="Button" RenderNonBreakingSpacesBetweenControls="false" NumericButtonCssClass="btn btn-primary" CurrentPageLabelCssClass="btn disabled" NextPreviousButtonCssClass="btn" />
<asp:NextPreviousPagerField ShowFirstPageButton="False" ShowPreviousPageButton="False" ButtonType="Button" ButtonCssClass="btn btn-primary" RenderNonBreakingSpacesBetweenControls="false" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<EmptyDataTemplate>
<table class="tbl-lv" style="width: 100%;">
<tr>
<th style="width: 50%;">Product
</th>
<th style="width: 10%">Unit Size
</th>
<th style="width: 10%">Unit
</th>
<th style="width: 10%">Price
</th>
<th style="width: 20%">QTY
</th>
</tr>
<asp:PlaceHolder runat="server" ID="groupPlaceHolder1"></asp:PlaceHolder>
<tr>
<td colspan="5">
<asp:DataPager ID="DataPager1" runat="server" PagedControlID="lv_groups" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ShowLastPageButton="False" ShowNextPageButton="False" ButtonType="Button" ButtonCssClass="btn btn-primary" RenderNonBreakingSpacesBetweenControls="false" />
<asp:NumericPagerField ButtonType="Button" RenderNonBreakingSpacesBetweenControls="false" NumericButtonCssClass="btn btn-primary" CurrentPageLabelCssClass="btn disabled" NextPreviousButtonCssClass="btn" />
<asp:NextPreviousPagerField ShowFirstPageButton="False" ShowPreviousPageButton="False" ButtonType="Button" ButtonCssClass="btn btn-primary" RenderNonBreakingSpacesBetweenControls="false" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</EmptyDataTemplate>
<GroupTemplate>
<tr style="height:30px">
<asp:PlaceHolder runat="server" ID="itemPlaceHolder1"></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<asp:HiddenField ID="HiddenField1" Value='<%# Eval("id") %>' runat="server" />
<td style="width: 50%">
<%# Eval("product_description") %>
</td>
<td style="width: 10%">
<%# Eval("unit_size", "{0:#### }") %>
</td>
<td style="width: 10%">
<%# Eval("unit") %>
</td>
<td style="width: 10%">
<%# Eval("price") %>
</td>
<td style="width: 20%">
<asp:TextBox runat="server" ID="txtQty" ForeColor="Black" Width="80%" Text='<%# Eval("qty") %>'></asp:TextBox>
</td>
</ItemTemplate>
</asp:ListView>
Это код, в котором я пытаюсь добавить элементы в список (я все еще зеленый в программировании, поэтому любая помощь будет оценена). Что я помещаю в оператор if
?
{
List<CartItems> items = new List<CartItems>();
DataTable CartTable = pd.dt_products_qty(helpers.ConnectionString, product_group_id, order_id);
if (CartTable != null && CartTable.Rows.Count > 0)
{
foreach (DataRow row in CartTable.Rows)
{
if ()
{
items.Add(new CartItems { id=row["id"].ToString(), product=row["product_description"].ToString(), unitSize=row["unit_size"].ToString(), unit=row["unit"].ToString(), price=row["price"].ToString(), qty=row["qty"].ToString() });
}
}
}
return items;
}