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
<