2011-02-16 17 views
5

kullanıcı denetimlerin bir listesini görüntülemek için nasıl! Yani zaman çizelgesi gibi bir heyecan, bilgi içeren blok üstdüşümünü yapmak zorunda.Bu gerçekten yüzden ateş etmeyin umut bir soru değil ASP.NET WebForms

Gerçekten bu .. sorunu nasıl bilmiyorum .. blok sayısı, her seferinde aynı değildir bazen sadece bazen iki veya bazen daha 1 blok olacak

olduğunu Yani html doğrudan yazmak için bazı HtmlWriter yapmak mı? Asp.net'de oldukça yeniyim, bu yüzden daha kolay bir şekilde yapmak mümkün! belki WebUserControl, bir blok ile = bir WUC yüzden .. ben o kadar belki biri zaten bu tür şeyleri yaptık ve doğru yolda beni koyabilirsiniz kayboldum .. ihtiyacım WUC sayısını ekleyebilirsiniz

Okuduğunuz için teşekkürler!

+1

Çok hoş geldiniz. – Amy

cevap

10

Bir "bloğu" temsil etmek için bir kullanıcı denetimi oluştururken doğru bir yoldasınız, ancak eksik olduğunuz şey onları bir liste olarak gösterecek bir mekanizmadır.

ASP.NET Bunun birçok olası çözümler vardır, ancak en basit biri ListView kontrolünü kullanmak olacaktır.

Bu sizin veri neye benzediğini bilmeden Örnek kodu sağlar, ancak Diyelim ki bir sınıf Block denilen var varsayalım zor: diyelim, bir kullanıcı denetimi yaratacak,

public class Block 
{ 
    public string Title {get; set;} 
    public string Text { get; set; } 
} 

bir blok görüntülemek için BlockControl:

Biçimlendirme:

<div style="margin:10px; padding:10px; background:#eee;"> 
    <h2><%= Block.Title %></h2> 
    <%= Block.Text %> 
</div> 

kod arkadaki:

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) 
    { 
    } 
} 

Daha sonra, .aspx sayfanızda, bir ASP.NET ListView denetimi bildirebilir ve verileri sunmak için ListView Öğesi Formunda BlockControl özelliğini kullanabilirsiniz. ListView'ın geçerli veri öğesini BlockControl.Block özelliğine nasıl bağlandığımıza dikkat edin.

<asp:ListView ID="BlockList" runat="server"> 
    <ItemTemplate> 
     <uc:BlockControl Block="<%# Container.DataItem %>" runat="server" /> 
    </ItemTemplate> 
</asp:ListView>    

.Verip kod arkasından, ListView veri kaynağını ayarlarsınız. Senin durumunda veri muhtemelen bir veritabanından geliyor, ama burada sadece bazı sahte veri var:

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(); 
} 

Artık bir kullanıcı denetiminde kapsüllü tek bir blok sunumunu ve ListView mekanizmasına sağlar Verilerinizi temel alarak bu kullanıcı kontrollerinin değişken bir sayısını görüntüleyin.

+0

sayesinde yararlı açıklama için çok! – bAN

+0

Bu harika. Teşekkürler! – xeon

İlgili konular