GridView Nesnesinde Seçili CheckBox Satırlarının Silinmesi
Merhaba arkadaşlar bu makalemizde GridView nesnesinde seçili CheckBox taki satırları sileceğiz. Sayfamıza ilk önce GridView ve SqlDataSource ekleyin. Şekil 1 deki Advenced butonuna tıklayarak, Generate INSERT, UPDATE, and DELETE statements i seçiniz.
Sonra datasource nizi GridView a bağlayın.
Şekil 1
Şekil 2
Şimdi GridView nesnesine CheckBox ekleyeceğiz. Gridview nesnesinin Columns kısmına,
TemplateField ekleyeceğiz. TemplateField içindeki ItemTemplate içine CheckBox ı yerleştiriyoruz.
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Sec" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
Şimdi silme işlemini gerçekleştirmeden önce küçük bir Javascript kodu ekleyeceğiz. Javascript kodu ile silme işleminden önce onay penceresi karşımıza gelecek (Şekil 3).
Şekil 3
Tamam butonuna tıkladığımızda silme işlemini gerçekleştireceğiz (Şekil 4).
Şekil 4
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
//satirdaki cbox okutuluyor.
CheckBox cbox = row.FindControl("Sec") as CheckBox;
//eger satirdaki cbox işaretlenmiş ise,
if (cbox.Checked == true)
{
//satira ait anahtar degeri buluyoruz.
int id = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);
SqlDataSource1.DeleteParameters["ID"].DefaultValue = id.ToString();
//satırı siliyoruz.
SqlDataSource1.Delete();
}
}
}
}
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridViev select checkBox delete</title>
<script language="javascript" type="text/javascript">
function Sil()
{
var onay=confirm('Seçili olan kayıtlar silinsin mi?');
if (onay)
{
return true ;
}
else
{
return false ;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Sec" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="JobTitle" HeaderText="JobTitle" SortExpression="JobTitle" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="CountryRegion" HeaderText="CountryRegion" SortExpression="CountryRegion" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" Text="Seçili Kayıtları Sil" Width="118px" OnClientClick="return Sil()"/>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Customers] WHERE [ID] = ?" InsertCommand="INSERT INTO [Customers] ([ID], [LastName], [FirstName], [JobTitle], [City], [CountryRegion]) VALUES (?, ?, ?, ?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT [ID], [LastName], [FirstName], [JobTitle], [City], [CountryRegion] FROM [Customers]" UpdateCommand="UPDATE [Customers] SET [LastName] = ?, [FirstName] = ?, [JobTitle] = ?, [City] = ?, [CountryRegion] = ? WHERE [ID] = ?">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="JobTitle" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="CountryRegion" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="JobTitle" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="CountryRegion" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN