ListView (Web) ile Gruplamak
14 Nisan Salı, 2009 | Asp.net C# Linq Html /*Yorumlar (0)*/
Çok yakın ve kadim bir dostum için araştırırken farkettim ve paylaşmak istedim.
ListView kontrolü içinde ki verileri gruplayarak göstermek. DataList kontrolündeki RepeatColums özelliğini kullanmak gibi fakat birazcık farklı :)
Div etiketleriyle Listview'e şablon hazırlamak yeterli.
<asp:ListView ID="Listview1" runat="server" GroupltemCount="S" EnableViewState="false">
<ItemTemplate>
<div style="width: 200px;
float: left;
font-family: Verdana;
font-size: l0px;
margin-bottom: l0px;">
<asp:Image ID="Imagel"
runat="server"
ImageUrl='<%# "image.aspx?path=" + Eval("FullName") %>' />
<br />
<strong>Dosya Adi:</strong>
<%# Eval("Name")%>
<br />
<strong>Uzunluk: </strong>
<%# Eval("Length")%>
<br />
<strong>Özellikler : </strong>
<%# Eval("Attributes")%>
</div>
</ItemTemplate>
<LayoutTemplate>
<div id="groupPlaceholderContainer" runat="server">
<div id="groupPlaceholder" runat="server">
</div>
</div>
</LayoutTemplate>
<GroupTemplate>
<div id="itemplaceholdertontainer" runat="server" style="width: l000px;">
<div id="itemPlaceholder" runat="server">
</div>
</div>
</GroupTemplate>
</asp:ListView>
Veri kaynağı için basit ve hızlı bir çözüm, dosyalar.
Listview1.DataSource = from file in new DirectoryInfo("C:\\windows").GetFiles()
orderby file.Name
select new
{
file.Name,
file.Length,
file.FullName,
file.Attributes
};
Listview1.DataBind();
Dosyaları biraz süslü gösterelim.
string path = Request["path"]; Icon ico = Icon.ExtractAssociatedIcon(path); Bitmap bmp = new Bitmap(ico.Width, ico.Height); Graphics g = Graphics.FromImage(bmp); g.DrawIcon(ico, new Rectangle(0, 0, ico.Width, ico.Height)); bmp.Save(Response.OutputStream, ImageFormat.Png); g.Dispose(); bmp.Dispose(); ico.Dispose();
Sonuç;