Anasayfa / Yazılım / ASP.NET / DetailsView Kontrolünü SqlDataSource Objesine Bağlamak – 1

DetailsView Kontrolünü SqlDataSource Objesine Bağlamak – 1

Bir önceki yazımda GridView kontrolünü SqlDataSource objesine bağlamayı anlatmıştım. Bu yazıdaki 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/gridview-kontrolunu-sqldatasource-objesine-baglamak/

Şimdi ise DetailsView kontrolünü SqlDataSource objesine bağlayalım ve kullanıcılara da ayrıca çalışan ekleme, çalışan silebilme imkanı verelim.

Web formumun design alanında iken tekrar ToolBox alanından bir SqlDataSource objesi seçip sayfama sürüklüyorum.

Hemen web formumun kod alanında ya da design alanında iken sürüklediğim SqlDataSource seçili iken adını yani ID değerini CalisanDataSource yapıyorum.

Daha sonra eklemiş olduğum SqlDataSource kontrolünün sağ üstünde yer alan smart tag okuna tıklıyorum. Buradan, Configure Data Source seçelim.

Configure Data Source dialog penceresi açılır. İlk sayfada hangi bağlantıyı seçmek istiyorsunuz denilen alanda Baglantim’i seçiyoruz. Eğer tanımlanmamış olsa idi New Connection diyerek yeni bir bağlantı oluşturmamız gerekirdi. İstersek ilgili ConnectionStringimizi de görebiliriz. Connection String alanındaki artı tuşuna tıklayınca bağlantı satırımızı görürüz.

Daha sonra Next diyoruz. Devam eden sayfa üzerinde Specify columns from table or wiev radio button seçili olacak. Altta yer alan Name alanında tablomuz olarak Employees seçilecek. Ve ilgili columns alanında aşağıdaki gibi alanları seçiniz (isterseniz hepsini seçebilirsiniz)

Daha sonra sağ tarafta yer alan WHERE butonuna tıklıyoruz.

Daha sonra açılan Where Clause alanında, Column bölümünden EmployeeID, Operator alanından = , source alanından Control, ControlID alanından da GridView1 seçiniz.

Daha sonra ADD butonuna tıklayınız. WHERE clause alanında WHERE yan cümleciği görünür.

Böylelikle EmployeeID’ye göre filtreleme durumunu belirtmiş oldum. Şimdi tekrar aşağıdaki pencereye geri döndük, burada ADVANCED diyoruz.

Açılan dialog penceresinde, Generate INSERT,UPDATE and DELETE statemens seçeneğini işaretleyiniz ve OK deyiniz.

Daha sonra geriye döndüğümüz pencerede NEXT diyoruz.

Daha sonra çıkan sayfada TEST QUERY diyoruz.

Çıkan pencerede Value alanına 1 yazıyorum ve OK diyorum. Böylelikle yaptığım işlem EmployeeID’si 1 olan kaydı sorgulamak. Aşağıdaki gibi bir sonuç çıkıyor karşıma..

Ve sonra FINISH diyorum.

Artık SqlDataSource objem DetailsView kontrolünü doldurabilecek durumda..

WEB formumda tekrar Design görünümüne geçiyorum. DetailsView kontrolümü seçiyorum ve sağ tarafta yer alan properties alanında kontrolün aşağıdaki özelliklerini karşılığında verilen şekli ile düzenliyorum.

AutoGenerateDeleteButton – True
AutoGenerateEditButton – True
AutoGenerateInsertButton – True
AllowPaging – False
DataSourceID – CalisanDataSource
DataKeyNames – EmployeeID

DataSourceID kısmını düzenlerken aşağıdaki gibi bir uyarı gelecek, EVET deyiniz.

Peki DetailsView kontrolümüzde şu anda ne gibi değişiklikler oldu görelim..

...
...

        
        
        
        
            
            
            
            
            
            
            
            
            
            
            
        
        <%#Eval("FirstName")%>  <%#Eval("LastName")%>
        
...
...

Evet şu ana kadar codebehind tarafında tek bir satır yazmadan işlemimizi tamamladık. Uygulamamızı çalıştırıp bir çalışan seçiniz dediğimizde göreceğimiz görüntü aşağıdaki gibi..

Görüldüğü üzere Edit, New, Delete alanları DetailsView kontrolümün hemen altında mevcut. DetailsView kontrolümde veriler de listeleniyor. Hatta altta Edit butonuna basıp Update işlemi yapabiliyorum veya Cancel deyip vazgeçebiliyorum. New diyerek düzenleme moduna geçebiliyorum. Aşağıdaki gibi düzenleme modunda görünüm oluyor.

Henüz tüm yapmak istediklerim bitmedi, devam edeceğiz. Ancak ikinci yazıda.. Tüm kodları paylaşalım :

Default.aspx :

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







    


    

Veri Listesi


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

Bir cevap yazın

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