아이디어가 있습니다. 이것은 랩핑하기 전에 세로로 표시 할 항목의 수가 고정 된 숫자이거나 적어도 서버가 판별 할 수있는 수임을 전제로합니다 (VerticalWrapLimit 상수 참조). 나는. 사용자의 브라우저 높이와 관련이 없습니다. 문제는 이런 종류의에 대한
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
rptVerticalWrap.DataSource = new[] {
new { ID = 1, Name = "ABC" },
new { ID = 2, Name = "BCD" },
new { ID = 3, Name = "CDE" },
new { ID = 4, Name = "DEF" },
new { ID = 5, Name = "EFG" },
new { ID = 6, Name = "FGH" },
new { ID = 7, Name = "GHI" },
new { ID = 8, Name = "HIJ" },
};
rptVerticalWrap.DataBind();
}
int count;
const int VerticalWrapLimit = 5;
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<% count = 0; %>
<div style="float:left;">
<asp:Repeater ID="rptVerticalWrap" runat="server">
<ItemTemplate>
<%
if (count % VerticalWrapLimit == 0 && count > 0)
{
%></div><div style="float:left;"><%
}
count++;
%>
<div>
<asp:Label runat="server" Text="ID: " /><asp:TextBox runat="server" Text='<%# Eval("ID") %>' />
<asp:Label runat="server" Text="Name: " /><asp:TextBox runat="server" Text='<%# Eval("Name") %>' />
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</form>
</body>
</html>
, 나는 당신이 그 다음, 당신은 결과 HTML 처음처럼 원하는 것을 파악이를 생성하는 ASP 코드를 작성하기 만하면 무엇을 생각합니다.
이 경우 데이터의 각 세로 열을 style = "float : left;"로 감 쌉니다. 현재 div를 닫고 새 div를 시작해야 할 때를 식별하기 위해 클래스 범위 "count"변수를 사용했습니다. Repeater의 ItemTemplate 내용이 나머지 페이지와 다른 범위를 가지기 때문에 count 변수는 클래스 수준 변수 여야합니다. 아래의 코드와 같이
그것은이에 대한 답변은 HTML과 CSS를 포함 할 것으로 보인다. 이러한 태그를 추가하는 것이 좋습니다. –