Ana içeriğe atla

Datalist Kontrolü

Bir makale sitesinde yazıların başlıklarının altalta dizildiğini düşünün ve başlığa tıklandığında o yazıya gitmek istiyoruz diyelim. Bunu datalist ile yapmak istersek yazılacak kod buna cok benzerdir. Yalnızca sayfa ismi yada datasource farklılık gösterebilir.

Datalist'i sayfamıza eklediğimizde "Edit Item Template" kısmında nasıl görünmesini istiyorsak o şekilde dizayn edebiliriz. Mesela ben içine bir tablo attım, tablo içine de bir adet HyperLink attım. Datasource bağlandığı anda ki bu kod tarafında da bağlanabilir, "Baslik" ve "ID" kısmımlarını Eval komutu ile çekiyor.
<asp:DataList ID="DataList1" runat="server" Width="800px" DataSourceID="AccessDataSource2">
     <ItemTemplate>
           <table >
              <tr>
                 <td>
                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"Post.aspx?ID="+ Eval("ID") %>'
                         Text='<%# Eval("Baslik") %>'></asp:HyperLink>
                 </td>
              </tr>
           </table>            
     </ItemTemplate>
<ItemStyle BackColor="white" />
</asp:DataList>

<asp:AccessDataSource ID="AccessDataSource2" runat="server"
    DataFile="~/App_Data/Forum.mdb"
    SelectCommand="SELECT * FROM [Konular] ORDER BY [Tarih] DESC">
</asp:AccessDataSource>

Daha fazla kayıt olduğu durumlarda "AlternatingItemTemplate" de kullanılabilir. Mesela bir satırın mavi bir satırın beyaz olmasını isteyebiliriz. Aşağıdaki bölümü datalist içine eklememiz yeterli olacaktır bunun için.
<AlternatingItemTemplate>
     <table >
        <tr>
           <td>
              <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"Post.aspx?ID="+ Eval("ID") %>'
                  Text='<%# Eval("Baslik") %>'></asp:HyperLink>
           </td>
        </tr>
     </table>                       
</AlternatingItemTemplate>
<AlternatingItemStyle BackColor="blue" />

Datalistimize Başlık eklemek istersek eğer "HeaderTemplate" tam işimize yarayacak bölüm. Aynı şekilde "FooterTemplate" de mevcut.
<HeaderTemplate> Başlık </HeaderTemplate>

<FooterTemplate> Bu da Alt Kısım </FooterTemplate>


Yorumlar

Bu blogdaki popüler yayınlar

Rusya Vizesi Fırsatçılığı

Neredeyse 7 yıl olacak yazı yazmayalı :) Eski yazılarıma baktım da hepsi programlama ile ilgili. Tabi o zamanlar henüz yurt dışına çıkmadığımdan vize ile ilgili işlemleri de bilmiyordum.

Gelelim Rusya vizesi olayına. Geçen sonbaharda hazır uçak biletlerinde kampanya varken bir yerlere gidelim dedik. Vize alınması gerektiğini biliyorduk ama yine de Mart ayı için Rusya'ya bilet aldık. (Gidiş dönüş 2 kişi 300TL)

Şubat ayı geldi hala vizeler kalkmayınca (malum adamların uçağını uçurduk) dedik vize başvurusu yapalım. Ama Rusya vizesi shengen gibi kolay değilmiş. Aslında kolay ama bir tur operatöründen alınmış bir belge istiyorlar. Bunu da internet üzerinden formu doldururken farkettik. Bir kaç araştırmadan sonra aracı şirketler bu belge ile birlikte vize ücretine kişi başı 150$ istediklerini görünce dedik uçak biletini yakalım gitmeyelim daha iyi.

Hatta bizim evin yakınında, neredeyse her gün önünden geçtiğim bir Jolly Tur var. Geçerken sorayım dedim Rusya vize ücretini. O da kişi başı…

Tasarım Desenleri : Abstract Factory

Bu desen Factory Method desenine çok benzer. Amaç yine aynıdır. Sistemden nesnelerin oluşma işini soyutlar. Abstract Factory benzer özellikleri olan nesne fabrikalarını gruplar. İçinde birden fazla fabrika vardır.
Örneğimizde birden fazla türde database'de kaydetme ve sorgulama işlemlerini gruplamak için soyut fabrikayı kullanıyoruz :
Kısaca kodlarına da bakalım :
Önce ürünlerimizin gerçek ve soyut sınıflarını yazıyoruz.
Kaydetme.cs
interface Kaydetme
{
void kaydet(string cumle);
}
SQLBaglanti.cs
class SQLBaglanti:Kaydetme
{
public void kaydet(string cumle)
{
MessageBox.Show("sql'e kaydedildi");
}
}
AccessBaglanti.cs
class AccessBaglanti:Kaydetme
{
public void kaydet(string cumle)
{
MessageBox.Show("access'e kaydedildi");
}
}
Komut.cs
interface Komut
{
void sorgula(string query);
}
SQLSorgu.cs
class SQLSorgu:Komut
{
public void sorgula(string query)
{
MessageBox.Show("sql'de sorgu oluştu");
}
}
AccessSorgu.cs
class AccessSorgu:Komut
{
public void sorgula(string query)
{
MessageBox…

Excel'den Veri Okuma

Programlamaya yeni başlayanların "ya bu veri tabanları tamam da excel ne ayak?" dedikleri çok olmuştur. Aslında hiç bir farkı yok :) biraz connectionString değişiyor biraz da sorgu cümlesi. Hatta sorgu cümlesinde neredeyse hiç fark yok :) Hadi gelin birlikte bakalım :
DataTable getirTumATSTablo() { string dosya_adres=@"C:\Deneme.xls"; OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dosya_adres + ";Extended Properties=Excel 8.0"); baglanti.Open();
string query = "select * from [Tablo1$A2:F450] "; OleDbDataAdapter oAdp = new OleDbDataAdapter(query, baglanti); DataTable dt = new DataTable(); oAdp.Fill(dt); return dt;
}
Şimdi bizim excel'imizin ilk sayfasının adı Tablo1 olsun ve bu sayfada A2 den F450'ye kadar verilerimizin olduğunu düşünelim. Yani ilk iki satır bo…