1

div タグに 2 つのアイテムだけを表示したい。したがって、最初の div タグは 2 つのアイテムまたは製品を表示し、次に別の div タグを追加して次の 2 つを表示します。その特定の部門からのデータが必要なため、db.Query を変更できません。これを行う方法はありますか?foreach ループ以外のものを使用する必要がありますか? どんな助けでも大歓迎です。私が欲しいものが混乱している場合はお知らせください。ありがとうございました!

@{
    var db = Database.Open("Kudler Internet");
    var products = db.Query("SELECT * FROM Inventory  WHERE Department='Bakery'");

}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<title>Shopping Online - Kudler Fine Foods</title>

<link rel="stylesheet" type="text/css" href="css/reset.css" media="screen" title="html5doctor.com Reset Stylesheet" />
<link rel="stylesheet" type="text/css" href="css/960.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/kudler.css">
<script type="text/javascript" src="js/modernizr-2.0.6.min.js" >

</script>
    <script type="text/javascript" src="js/jquery.js"></script>
</head>

<body id="internet">

<header class="wrapper">
  <div class="container_16 logo">
    <p>Kudler Fine Foods</p>
  </div>

  <div class="clear"></div>

</header>

<nav class="container_16 navigation">


        <ul>
                 <li><a href="index.html">Home</a>
                </li>
                <li>
                    <a href="catalog.html">ONLINE SHOPPING</a>
                    <ul>
                        <li>
                            <a>Bakery</a>
                        </li>
                        <li>
                            <a>Meat &amp; Seafood</a>
                        </li>
                        <li>
                            <a>Produce</a>
                        </li>
                        <li>
                            <a>Cheese &amp; Dairy</a>
                        </li>
                        <li>
                            <a>Wine</a>
                        </li>
                    </ul>
</li>

                <li>
                    <a>CART</a>
                </li>
                <li>
                    <a>ABOUT</a>
                </li>
                <li>
                    <a>NEWS</a>
                </li>
                <li>
                    <a>LOCATIONS</a>
                </li>
  </ul>
        <hr />
</nav>

<section class="container_16">
<div id="slideshow"> 
        <img src="images/ph_940_300.gif" alt="Placeholder image"  title="Placeholder Image" /> 
  </div>

  <nav class="navigation secondarynav">

      <hr />
    </nav>

<div id="article" class="container_16">



<div class="grid_6">
    @foreach (var img in products){
            <img src="images/ph_244_188.gif" alt="placeholder image" width="185" height="160" style="float:left; margin-right:30px; padding-bottom:10px;" title ="Placeholder Image" />
                                                                                                                                                                              }
</div>

        <div class="grid_6 content border_left">
            @foreach (var p in products ) 
            {

            <h1> @p.InventoryItem</h1>
            <p> @p.Price</p>
          <p>@p.Units  </p>
                     <br/>}
        </div>

</div>
4

2 に答える 2

0

forこれには、ループの増分値を使用できます。このようなもの:

<div class="grid_6 content border_left">
@for (var i = 0; i < products.Count(); i++)
{
    <h1>@products[i].InventoryItem</h1>
    <p>@products[i].Price</p>
    <p>@products[i].Units</p>
    <br/>
    @if (i % 2 == 1)
    {
        </div>
        <div class="grid_6 content border_left">
    }
}
</div>

これにより、要素h1p要素が通常どおり出力され、ループの 2 回目の反復ごとに、要素の終了と再開も出力されますdiv

于 2014-03-17T17:44:51.413 に答える
0

Linq グループ化を使用して、項目を 2 つのグループに結合します。次のようなものです。

@foreach (var grp in products
    .Select((index, item) => { index = index, item = item }))
    .GroupBy(item => item.index / 2))
{
    <div class="grid_6 content border_left">
        @foreach (var p in grp)
        {
            <h1> @p.item.InventoryItem</h1>
            <p> @p.item.Price</p>
            <p> @p.item.Units </p>
            <br/>
        }
    </div>
}
于 2014-03-17T17:45:11.173 に答える