Gridview Kontrolü ile Çoklu Silme İşlemi
12.12.2006 00:00:00
Merhaba arkadaşlar bu makalemizde gridview kontrolü içerisinde seçili olan kayıtları silme işleminin nasıl yapılacağına bakacağız...
Puan:
     


Kalabalık bir kayıt listesi içerisinde gereksiz olan bir çok kayıt silinmek istendiğinde bu kayıtları tek tek silmek çoğu zaman kullanıcı için sıkıcı bir iştir. Bunun için kullanıcı gereksiz olan kayıtları kendisi seçip, tek bir sefer de silmeyi tercih eder. Bu kullanıcıya büyük kolaylık sağlar. Normalde gridview nesnesinde kayıt listesinin yanında sil isimli bir buton koyar ve o satırdaki kaydı sildirirdik. Biz gridview nesnemizi biraz daha genişleterek kullanıcının kayıtların tümünü seçerek veya tek tek sileceği bir kayıt listesi sunacağız.

İlk olarak visual studio açalım ve asp.net projesi oluşturalım. Ben dil olarak C# Seçtim.



Daha sonra projemizde kullanacağımız nesnelerden bahsedelim. Ben projemde Northwind database’i içerisindeki Products tablosunu kullanacağım. Field olarak da Grid içerisin de ProductID, ProductName ve UnitPrice fieldlarını kullanacağım. Ek olarak grid içerisinde bir template field oluşturup Header Template içerisine CheckAll isimli bir checkbox ve item template içerisinede deleteRec isimli bir checkbox kontrolü ekledim. Birde seçeceğim kayıtları sildirmek için bir adet link buton ekledim. Form tasarımım aşağıdaki gibi oluştu.



Formumuzun tasarımını tamamladıktan sonra şimdi Tümünü seç ve tek tek seçim yapmak için gerekli olan javasctipt kodlarını yazalım.

function
check_uncheck(Val)

check_uncheck(Val) check_uncheck(Val)

{

var ValChecked = Val.checked;

var ValId = Val.id;

var frm = document.forms[0];

for (i = 0; i < frm.length; i++)

{

if (this != null )

{

if (ValId.indexOf(’CheckAll’ ) != - 1)

{

if

if (ValChecked)

frm.elements[i].checked = true ;

else

frm.elements[i].checked = false ;

}

else if (ValId.indexOf(’deleteRec’ ) != - 1)

{

if (frm.elements[i].checked == false )

frm.elements[1].checked = false ;

}

} // if

} // for

} // function

Javascript içerisine fonksiyonlarımızı yazdıktan sonra bunu gridview nesnesi üzerindeki checkboxlarda çağıralım.

< asp : GridView ID ="dbGrid" runat ="server" AutoGenerateColumns ="False" CellPadding ="4"

asp : GridView ID ="dbGrid" runat ="server" AutoGenerateColumns ="False" CellPadding ="4"

Font-Names ="Verdana" Font-Size ="X-Small" ForeColor ="#333333" GridLines ="None"

Width ="448px">

< FooterStyle BackColor ="#5D7B9D" Font-Bold ="True" ForeColor ="White" />

< Columns >

< asp : TemplateField >

< HeaderTemplate >

< asp : CheckBox ID ="CheckAll" runat ="server" onClick ="return check_uncheck(this);" />   --->>> tümünü Seç

HeaderTemplate >

< ItemTemplate > < asp : Label ID ="ProductID" Visible ="false"

Text =’

runat ="server" />

< asp : CheckBox ID ="deleteRec" runat ="server" onClick ="return check_uncheck (this );" /> --->>> Tek Tek Seç

ItemTemplate >

< FooterTemplate >

FooterTemplate >

asp : TemplateField >

< asp : BoundField DataField ="ProductID" HeaderText ="ProductID" />

< asp : BoundField DataField ="ProductName" HeaderText ="ProductName" />

< asp : BoundField DataField ="UnitPrice" HeaderText ="UnitPrice" />

Columns >

< RowStyle BackColor ="#F7F6F3" ForeColor ="#333333" />

< EditRowStyle BackColor ="#999999" />

< SelectedRowStyle BackColor ="#E2DED6" Font-Bold ="True" ForeColor ="#333333" />

< PagerStyle BackColor ="#284775" ForeColor ="White" HorizontalAlign ="Center" />

< HeaderStyle BackColor <