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

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 comments:

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...