Asp.Net’de datatable sınıfını kullanarak dinamik sanal tablolar oluşturabilir ve içerisine veriler ekleyebiliriz bu makalemizde bu ekleme işleminin nasıl yapıldığı konusunda bilgi edinmeye çalışacağız.
Öncelikle sayfamıza bir gridview nesnesi ve 3 adet kolon ekliyoruz datafield’larına ise sanal olarak oluşturacağımız tablodaki sütunların adlarını giriyoruz.
Gridview nesnesi
1 2 3 4 5 6 7 8 | <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="Id" HeaderText="ID" ItemStyle-Width="30" /> <asp:BoundField DataField="Ad" HeaderText="Ad" ItemStyle-Width="150" /> <asp:BoundField DataField="Ulke" HeaderText="Ülke" ItemStyle-Width="150" /> </Columns> </asp:GridView> |
Eklenecek namespace
Bu namespace’i ekleme nedenimiz Oluşturacağımız dinamik tablo için kullandığımız DataTable sınıfırının System.Data namspace’i altında yer almasıdır.
1 | using System.Data; |
Dinamik olarak Tablo oluşturma
İlk olarak DataTable sınfından dt adında instance(örnek) alıyoruz. Daha sonra dinamik olarak oluşturacağımız tabloya 3 adet sütunu AddRange metodunu kullanarak ekliyoruz. Burada dikkat edilmesi gereken bir nokta var eğer tabloda tek bir sütun olacaksa Add metodu kullanılmalı ama 1’den fazla sütun eklenecekse AddRange metodu ile DataColumn sınıfından array olarak istediğimiz kadar sütun girebilmekteyiz. Sütun eklenirken ilk parametreye sütun adını ikinci parametreye opsiyonel olarak veritipini girebilirsiniz. Son olarak DataTable sınıfından dt adında instance aldığımız nesneye veri eklemek için ise “dt.Rows.Add” sözdimiyle tüm sütunlara veri girişi yapmalısınız. Anlattıklarımı örnek olarak alttaki kodu adım adım takip ederek daha iyi anlayabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)), new DataColumn("Ad", typeof(string)), new DataColumn("Ulke",typeof(string)) }); dt.Rows.Add(1, "Murat ÖNER", "Türkiye"); dt.Rows.Add(2, "John Hammond", "Amerika"); dt.Rows.Add(3, "Mudassar Khan", "Hindistan"); dt.Rows.Add(4, "Suzanne Mathews", "Fransa"); dt.Rows.Add(5, "Robert Schidner", "Rusya"); GridView1.DataSource = dt; GridView1.DataBind(); } } |