Anasayfa / Yazılım / ASP.NET / DetailsView Kontrolünde Listeleme Yapmak

DetailsView Kontrolünde Listeleme Yapmak

Bir önceki yazımda DetailsView kontrolünü SqlDataSource objesine bağlamayı anlatmıştım. Bu yazıya devam niteliğinde devam ediyorum. Uygulamamıza devam ediyoruz. Aşağıdaki linkten yazıya göz atabilir ve ilgili uygulama dosyasını indirebilirsiniz. Bu arada Sql Serverinizde Northwnd veritabanı kurulu olduğunu farzediyorum. (Northwnd veri tabanını sitede bulabilirsiniz)

http://www.ismailgursoy.com.tr/detailsview-kontrolunu-sqldatasource-objesine-baglamak-2/

DetailsView kontrolümüzü geliştirmeye devam edelim. Yapmak istediğim DetailsView kontrolüm içinde listeleme yapmak. Bunun için ben City alanını kullanacağım. Yeni Çalışan eklerken sadece veritabanında kayıtlı mevcut şehirlerden seçmiş olacak yani.

Öncelikle WEB formumda design görünümünde iken sayfama ToolBox’dan Data altında yer alan nesnelerden bir adet SqlDataSource atıyorum. Daha sonra kod kısmına geçiyor ve ID’sini SehirDS olarak değiştiriyorum.

Tekrar Design kısmına geçiyor ve bu son sürüklediğim SQL Data source nesnemin smart tag okuna tıklıyorum.

Burada Configure Data Source diyorum.

Çıkan sayfada Baglantim Connection seçiyoruz. (Web config dosyamızda tanımlı)

Bu işlemlerin ardından SqlDataSource kodumda üretilen kod aşağıda :

Web formumuzda tekrar Design moda dönüp, DetailsView kontrolümü seçiyorum. Smart tage tıklıyorum ve buradan Edit Fields diyorum.

Daha sonra açılan pencerede, Selected Fields alanında City seçiniz. Seçtikten sonra sağ altta yer alan Convert this field into a TemplateField deyiniz. Böylelikle City için BoundField alanım düzenlenebilir bir TemplateAlanına dönüştürülmüş olur. Bunu kod kısmında göreceğiz. Aşağıda bu işlemi nasıl yaptığımı görebilirsiniz.

Bu işlemlerimin ardından web formumun kod tarafında TemplateField tagleri arasındaki kod bloğum şu şekilde :

 
                
                    
                
                
                    
                
                
                    
                
            

City DataField alanım için görüldüğü gibi TextBoxlar yer alıyor. Ben şimdi burada bir DropDownList yer almasını sağlayacağım. Böylelikle sadece bu DropDownList kontrolünde yer alan city içinden seçim yapılsın. (Tekrarlar olabilir, bu kısımla şimdi ilgilenmiyoruz) Dolayısı ile aşağıdaki gibi değiştirdim.


                
                    
                
                
                     
                
                
                     
                
            

Böylelikle artık City için bir TextBox yerine bir Combobox yer alıyor.

Böylelikle bir DetailsView kontrolü içine farklı bir kontrol eklemeyi de görmüş olduk. Uygulamamızın kodlarını tekrardan paylaşayım. Ayrıca aşağıdaki DownLoad linkinden de indirebilirsiniz.

Default.aspx :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>







    


    

Veri Listesi


<%#Eval("FirstName") == null ? "Yeni çalışan ekleme" : Eval("FirstName")%> <%#Eval("LastName")%>

Default.aspx.cs :

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        GridView1.DataBind();
    }
    protected void DetayBilgi_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)
    {
        GridView1.DataBind();
    }
    protected void DetayBilgi_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        GridView1.DataBind();
    }
    protected void DetayBilgi_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
    {
        GridView1.DataBind();
    }
    protected void CalisanEkleLinkButon_Click(object sender, EventArgs e)
    {
        DetayBilgi.ChangeMode(DetailsViewMode.Insert);
    }
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir