如何将产品分组以显示在页面中

时间:2014-12-02 18:38:22

标签: asp.net-mvc

我想请求您的帮助,对我正在处理的一些代码进行一些代码修改。

目前代码显示' x'页面上的产品数量:

方框1(产品编号140)

价格10美元

方框2(产品编号140)

价格10美元

方框3(产品编号143) - 不同的ID

价格20美元

订单小计:$ 40.00

CODE

            <div class="yourorder">
                @foreach (var prod in Model.Products)
                {
                    for (var i = 0; i < prod.Count; i++)
                    {
                        <div data-index="@i" data-type="product" data-id="@prod.ID" data-multiple="@prod.Multiple" data-multiplecatid="@prod.MultipleCategoryID">                                
                            @{Html.RenderAction("ShoppingCartProduct", "ShoppingCart", new { id = prod.ID });}
                            <div class="shippingArea">
                                <div class="shippingPickerLabel">Use this shipping address:</div>
                                <div>
                                    <select class="shippingPicker" data-type="prod" data-id="@(prod.ID)">
                                        <option value="-1">Add New</option>
                                    </select>
                                </div>
                            </div>
                        </div>
                    <br />
                    <hr />
                    }
                }
                <div class="totals" style="font-weight:normal;margin-top:20px;">

                    @if (Model.TotalPriceFrom == Model.TotalPriceTo)
                    {
                        <div><strong>Order Sub-Total:</strong> $<span class="grandTotal">@Model.TotalPriceTo.ToString("0.00")</span></div>
                    }
                    else
                    {
                        <div><strong>Order Sub-Total:</strong> $<span class="grandTotal">@Model.TotalPriceFrom.ToString("0.00") - $@Model.TotalPriceTo.ToString("0.00")</span></div>
                    }
                </div>
        </div>

价格在名为&#34; ShoppingCartProduct&#34;的PartialView中计算。执行该操作的代码:

CODE

    <div class="shoppingCartPrice">
    @if (Model.Prod.HasRange && Model.Prod.WeightFrom.HasValue && Model.Prod.WeightTo.HasValue)
    {
        if (Model.Prod.UnitID.HasValue)
        {
            <div>$@Model.Prod.Price.Value.ToString("0.00") per @Model.UnitName</div>
        }
        <div>Price: $@((Model.Prod.Price.Value * Model.Prod.WeightFrom.Value).ToString("0.00")) - $@((Model.Prod.Price.Value * Model.Prod.WeightTo.Value).ToString("0.00"))</div>
        <div style="display:none;" class="minPrice">@((Model.Prod.Price.Value * Model.Prod.WeightFrom.Value).ToString("0.00"))</div>
        <div style="display:none;" class="maxPrice">@((Model.Prod.Price.Value * Model.Prod.WeightTo.Value).ToString("0.00"))</div>
    }
    else
    {
        <div>Price: $@Model.Prod.Price.Value.ToString("0.00")</div>
        <div style="display:none;" class="minPrice">@((Model.Prod.Price.Value).ToString("0.00"))</div>
        <div style="display:none;" class="maxPrice">@((Model.Prod.Price.Value).ToString("0.00"))</div>
    }
</div>

我需要帮助才能使它计算出不同的结果并显示不同的颜色。

喜欢:

方框1数量2(具有相同ID的产品)

每个价格10美元

小计$ 20.00

方框2数量1(具有不同身份证的产品)

价格20美元

小计$ 20.00

订单小计:$ 40.00

1 个答案:

答案 0 :(得分:0)

我很久以前就遇到过同样的问题。我们使用cookie解决了这个问题。 产品是从SQL服务器加载的,但是对于每个产品,我们将它的ID增加为1,因此产品ID的范围从1到X.考虑到一个巨大的网上商店,我们将这个4号包机长,所以:0001。

然后我们只是将产品ID读入一个字符串并添加数量后面的数量,所以一串6个字符。然后:

int count = Response.Cookie["producten"].Length / 6

for (int i = 0; i < count; i++)
{
//paste your string decoder here to sort out the product ID and the quantity
Panel p = new Panel();
p.ID = i;
p.CssClass = [your cssclass]
//paste here code for the rest of your div
cartdiv.Controls.Add(p);
}

通过这样做,代码为每个产品生成一个div(或您想要的任何其他东西),其中包含唯一ID和相同的Class。