2013-05-08 4 views
0

5 개의 열에 표시해야하는 데이터가 있습니다. 현재 코드가 잘 작동하고 데이터가 데이터베이스에서 선택되어 처음 5 개의 열 (각 열에 7 개의 데이터가 있음)에 올바르게 표시됩니다.ASP.net에서 열의 데이터를 표시하는 방법?

그러나 다섯 번째 열 다음에 다음 열은 첫 번째 열 아래에서 시작해야하며 두 번째 열에서 시작하여 계속됩니다.

아래는 현재 사용되는 코드입니다.

<li><a href="/c/@Model.CatList[0].Id/all/@Model.CatList[0].Name" class='white'>@Model.CatList[0].Name</a></li> 

         @for (int i = 1; i < Model.CatList.Count(); i++) 
         { 
          <li><a href="/c/@Model.CatList[i].Id/all/@Model.CatList[i].Name" class='white'>@Model.CatList[i].Name</a></li> 


          if (i % Model.FooterCount == 0) 
          { 

           @Html.Raw("</ul><ul>"); 
           <li class='itemCaption f17o'>&nbsp;</li> 
          } 

         } 
+1

사용하려는 그리드 레이아웃입니까, 아니면 표 형식의 데이터입니까? 렌더링 된 html의 현실적인 예를 제공 할 수 있습니까? 첫 번째 블록이 다른 블록보다 크고, 블록을 떠 다니는 문제가 있다고 생각합니다. 따라서 여섯 번째 블록에서 왼쪽으로 떠서 첫 블록을 친 것입니다. 레이아웃의 목표에 따라 문제를 해결하는 여러 가지 방법이 있습니다. 브라우저 너비에 반응해야합니까? 항상 5 열로 고정해야합니까? 그것은 실제로 표 형식의 데이터입니까 (표를 사용해야합니까?)? –

+0

네가 바로 거기에 있습니다. 첫 번째 열은 다른 열보다 크며, 이것은 또한 내가 직면 한 문제입니다. 항상 5 열에 고정해야합니다. 여섯 번째 열은 다른 열과 동일한 수의 데이터로 구성된 다른 집합으로 첫 번째 열 아래에 있어야합니다. – user1987035

+0

자사의 유동적 인 접근 방식과 나는 테이블을 사용하고자하지 않습니다. 단지 브랜드 이름의 집합을 열에 내 웹 사이트의 바닥 글에 표시하려는 데이터베이스에 저장된 .. 5 또는 6 이상()에 따라 달라집니다 각 컬럼 .. 그리고 컬럼의 한계가 도달하면 데이터베이스에서 추출 된 다음 아이템은 다른 컬럼으로 이동해야합니다. 5 컬럼이 바닥 글에서 한 행으로 만들어 질 것입니다. 첫 번째 5 세트의 컬럼이 만들어진 후, 여전히 끌어온 데이터는 첫 번째 세트 바로 아래의 두 번째 행에 새 열에 넣어야합니다. 따라서 다섯 개의 열 행 집합이 만들어집니다. 이렇게하면 의심의 여지가 없어지기를 바랍니다. – user1987035

답변

1

정확한 html에 대한 자세한 내용이 없으면 디스플레이의 각 행에 대한 첫 번째 블록에 style = "clear : left"를 추가 할 수 있습니다. 같은 뭔가 :

@{ 
    int cellCount = 1; 
    int columns = 5; 

    var items = Model.CatList.Take(Model.FooterCount); 
} 

@while(items.Count > 0) 
{ 
    string style = "float:left;" 
    if(cellCount % columns == 0) 
    { 
     style += "clear:left;" 
    } 

    <ul style='@style'> 
     @if (cellCount != 1) 
     { 
      <li class='itemCaption f17o'>&nbsp;</li> 
     } 

     @foreach(item in items) 
     { 
      <li> 
       <a href="/c/@item.Id/all/@item.Name" class='white'>@item.Name</a> 
      </li> 
     } 
    </ul> 

    @{ 
    items = Model.CatList.Skip(cellCount * Model.FooterCount).Take(Model.FooterCount); 
    cellCount++; 
    } 
} 

나는 ul 태그를 닫는 포함 된 원시 HTML을 좋아하지 않았다, 그래서 나는 것을 방지하기 위해 코드를 수정했습니다. 나는 또한 그것이 의도를보다 분명하게 표현한다고 생각한다.

+0

시도했지만 그때 모든 열 (새롭고 오래된) 왼쪽으로 간다 – user1987035

+0

재미있는 이것은 내가 첫 번째 데이터를 호출하지 않고 두 번째 데이터를 호출하는 루프를 시작한 경우입니다, 그럼 원하는대로 잘 작동합니다. – user1987035

+0

당신이 가지고 있다고 가정하십시오 각 UL의 FooterCount 항목과 새 행을 시작하려는 UL 5 개 항목. 코드 예제 업데이트 중. –

관련 문제