"블록"을 나타 내기 위해 사용자 정의 컨트롤을 만들면서 올바른 길을 걷고 있지만, 부족한 부분은 목록으로 표시하는 메커니즘입니다.
ASP.NET에는 여러 가지 가능한 솔루션이 있지만 가장 간단한 방법은 ListView
컨트롤을 사용하는 것입니다.
그것은 당신의 데이터가 어떻게 생겼는지 알지 못하고 예제 코드를 제공하지만, 이제 당신은 클래스가 Block
라고 가정 해 보자 어렵다 : 현실을 부르 자, 당신은 사용자 컨트롤을 만들 것
public class Block
{
public string Title {get; set;}
public string Text { get; set; }
}
을 하나 개의 블록을 표시하려면 BlockControl
:
마크 업 :
<div style="margin:10px; padding:10px; background:#eee;">
<h2><%= Block.Title %></h2>
<%= Block.Text %>
</div>
코드 숨김
,536,
public partial class BlockControl : System.Web.UI.UserControl
{
//Note the public property, we'll use this to data bind the ListView's item to the user control
public Block Block { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
}
그런 다음 .aspx 페이지에서 ASP.NET ListView 컨트롤을 선언하고 ListView의 ItemTemplate에서 BlockControl을 사용하여 데이터를 표시 할 수 있습니다. ListView의 현재 데이터 항목을 BlockControl.Block 속성에 바인딩하는 방법에 유의하십시오.
<asp:ListView ID="BlockList" runat="server">
<ItemTemplate>
<uc:BlockControl Block="<%# Container.DataItem %>" runat="server" />
</ItemTemplate>
</asp:ListView>
.aspx 코드 숨김에서 ListView 데이터 원본을 설정합니다. 귀하의 경우에는 데이터가 아마 데이터베이스에서 제공하지만, 여기에 단지 몇 가지 모의 데이터의 :
protected void Page_Load(object sender, EventArgs e)
{
List<Block> blocks = new List<Block>
{
new Block { Title = "Block1", Text="This is the block 1 content"},
new Block { Title = "Block2", Text="This is the block 2 content"}
};
this.BlockList.DataSource = blocks;
this.BlockList.DataBind();
}
이제 사용자 컨트롤에 캡슐화 단일 블록의 프리젠 테이션을하고있는 ListView는 메커니즘을 제공합니다 데이터를 기반으로 다양한 사용자 컨트롤을 표시하십시오.
여러분을 진심으로 환영합니다. – Amy