ListView da Edit, Insert, Update, Delete ve Sayfalama İşlemleri

Merhaba arkadaşlar bu makalemizde ListView nesnesinde düzenleme işlemlerini yapacağız. ListView a yeni kayıt girişi yapacağız. Mevcut kayıtların güncellenmesini göreceğiz. İstenilmeyen kayıtları sileceğiz. Son olarak DataPager ile ListView nesnemizi sayfalayacağız.

 





Şekil 1

Default.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

   string str= "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\kategori.mdf;Integrated Security=True";

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            BindDetay("Yazar ASC");

        }

        }

 

    private void BindDetay(string sortExpression)

    {

        sortExpression = sortExpression.Replace("Ascending", "ASC");

        using (SqlConnection baglan = new SqlConnection(str))

        {

            baglan.Open();

            using (SqlDataAdapter da = new SqlDataAdapter("Select * From [dbo].[Table] order by Yazar", baglan))

            {

                DataTable dt = new DataTable();

                da.Fill(dt);

                // simdi sinifliyoruz

                dt.DefaultView.Sort = sortExpression;

                ListView1.DataSource = dt;

                ListView1.DataBind();

            }

            baglan.Close();

        }

 

   

    }

 

    protected void InsertListViewItem(object sender, ListViewInsertEventArgs e)

    {

        ListViewItem item = e.Item;

        TextBox tYazar = (TextBox)item.FindControl("txtYazar");

        TextBox tKitap = (TextBox)item.FindControl("txtKitap");

        TextBox tFiyat = (TextBox)item.FindControl("txtFiyat");

        // veritabanina kayitlarin girisi yapiliyor

        using (SqlConnection conn = new SqlConnection(str))

        {

            string Sql = "insert into [dbo].[Table] (Yazar, Kitap, Fiyat) values " +

            " (@Yazar, @Kitap, @Fiyat)";

            conn.Open();

            using (SqlCommand dCmd = new SqlCommand(Sql, conn))

            {

                dCmd.Parameters.AddWithValue("@Yazar", tYazar.Text.Trim());

                dCmd.Parameters.AddWithValue("@Kitap", tKitap.Text.Trim());

                dCmd.Parameters.AddWithValue("@Fiyat", tFiyat.Text.Trim());

                dCmd.ExecuteNonQuery();

            }

            conn.Close();

        }

        lblMesaj.Text = "Yeni kayıt(lar) başarılı şekilde girişi yapıldı. ";

      

        BindDetay("Yazar ASC");

    }

 

    protected void EditListViewItem(object sender, ListViewEditEventArgs e)

    {

        ListView1.EditIndex = e.NewEditIndex;

        

        BindDetay("Yazar ASC");

    }

    protected void UpdateListViewItem(object sender, ListViewUpdateEventArgs e)

    {

        ListViewItem item = ListView1.Items[e.ItemIndex];

        int Id = int.Parse(ListView1.DataKeys[e.ItemIndex].Value.ToString());

        TextBox tName = (TextBox)item.FindControl("txtName");

        TextBox tAddress = (TextBox)item.FindControl("txtAddress");

        TextBox tPhone = (TextBox)item.FindControl("txtPhone");

        // veritabanina kayitlarin girisi yapiliyor

        using (SqlConnection conn = new SqlConnection(str))

        {

            string Sql = "update [dbo].[Table] set Yazar = @Yazar, Kitap = @Kitap, Fiyat = @Fiyat where Id = @Id";

            conn.Open();

            using (SqlCommand dCmd = new SqlCommand(Sql, conn))

            {

                dCmd.Parameters.AddWithValue("@Id", Id);

                dCmd.Parameters.AddWithValue("@Yazar", tName.Text.Trim());

                dCmd.Parameters.AddWithValue("@Kitap", tAddress.Text.Trim());

                dCmd.Parameters.AddWithValue("@Fiyat", tPhone.Text.Trim());

                dCmd.ExecuteNonQuery();

            }

            conn.Close();

            lblMesaj.Text = "Kayıt(lar) başarılı şekilde güncellendi.";

        }

        ListView1.EditIndex = -1;

        // tekrar baglanti detaylarini aliyoruz

        BindDetay("Yazar ASC");

    }

    protected void CancelListViewItem(object sender, ListViewCancelEventArgs e)

    {

        ListView1.EditIndex = -1;

        // tekrar baglanti detaylarini aliyoruz

        BindDetay("Yazar ASC");

    }

    protected void DeleteListViewItem(object sender, ListViewDeleteEventArgs e)

    {

        int Id = int.Parse(ListView1.DataKeys[e.ItemIndex].Value.ToString());

        // veritabanina kayitlarin girisi yapiliyor

        using (SqlConnection conn = new SqlConnection(str))

        {

            string Sql = "delete from [dbo].[Table] where Id = @Id";

            conn.Open();

            using (SqlCommand dCmd = new SqlCommand(Sql, conn))

            {

                dCmd.Parameters.AddWithValue("@Id", Id);

                dCmd.ExecuteNonQuery();

            }

            conn.Close();

            lblMesaj.Text = "Kayıt(lar) başarılı şekilde silindi. ";

        }

 

       

        BindDetay("Yazar ASC");

    }

    protected void PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)

    {

        DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);

       

        BindDetay("Yazar ASC");

    }

 

    protected void SortListViewRecords(object sender, ListViewSortEventArgs e)

    {

        string sortExpression = e.SortExpression + " " + e.SortDirection;

        BindDetay(sortExpression);

    }

 

}

 

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></title>

    <style type="text/css">

        .auto-style1 {

            width: 872px;

            height:50px;

            font-size:29px;

        }

    </style>

</head>

<body>

    <form id="form1" runat="server">

        <div>

         

 

<asp:Label ID="lblMesaj" runat="server" EnableViewState="false" ForeColor="Blue"></asp:Label>

<asp:ListView ID="ListView1" runat="server" ItemPlaceholderID="PlaceHolder1" OnItemEditing="EditListViewItem"

OnItemCanceling="CancelListViewItem" OnItemUpdating="UpdateListViewItem" DataKeyNames="Id"

OnPagePropertiesChanging="PagePropertiesChanging" OnItemInserting="InsertListViewItem"

InsertItemPosition="LastItem" OnItemDeleting="DeleteListViewItem" OnSorting="SortListViewRecords" >

<LayoutTemplate>

<table width:"750px" cellpadding="4" cellspacing="0" border="1"  bordercolor=#000000>

<tr class="header">

<th style="width: 350px;font-size:24px;">

<asp:LinkButton ID="lnkSort1" runat="server" CommandName="Sort" CommandArgument="Yazar" Text="Yazar" />

</th>

<th style="width: 350px;font-size:24px;">

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Sort" CommandArgument="Kitap" Text="Kitap" />

</th>

<th style="width: 250px;font-size:24px;" >

<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Sort" CommandArgument="Fiyat" Text="Fiyat" />

</th>

<th style="width: 150px;font-size:24px;">

Düzenle

</th>

</tr>

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

</table>

</LayoutTemplate>

<ItemTemplate>

<tr class="item" style="background-color: #b6ff00;color: #284775; font-size:24px;">

<td>

<%# Eval("Yazar") %>

</td>

<td>

<%# Eval("Kitap") %>

</td>

<td>

<center><%# Eval("Fiyat") %></center>

</td>

<td>

<asp:LinkButton ID="lnkEdit" runat="server" Text="Edit" CommandName="Edit" />

<span onclick="return confirm('Seçili kayıtın silinmesinden emin misiniz?')">

<asp:LinkButton ID="lnkDelete" runat="server" Text="Delete" CommandName="Delete" ForeColor="Brown"/>

</span>

</td>

</tr>

</ItemTemplate>

<AlternatingItemTemplate>

<tr style="background-color:#4cff00;color: #284775;font-size:24px; ">

<td>

<%# Eval("Yazar") %>

</td>

<td>

<%# Eval("Kitap") %>

</td>

<td>

<center><%# Eval("Fiyat") %></center>

</td>

<td>

<asp:LinkButton ID="lnkEdit" runat="server" Text="Edit" CommandName="Edit" />

<span onclick="return confirm('Seçili kayıtın silinmesinden emin misiniz?')">

<asp:LinkButton ID="lnkDelete" runat="server" Text="Delete" CommandName="Delete" ForeColor="Brown" />

</span>

</td>

</tr>

</AlternatingItemTemplate>

<EditItemTemplate>

<tr class="edititem" style="font-size:24px;">

<td>

Yazar:

<asp:TextBox ID="txtYazar" runat="server"  Text='<%# Eval("Yazar") %>' />

</td>

<td>

Kitap:

<asp:TextBox ID="txtKitap" runat="server" Text='<%# Eval("Kitap") %>' />

</td>

<td>

Fiyat:

<asp:TextBox ID="txtFiyat" runat="server"  Text='<%# Eval("Fiyat") %>' />

</td>

<td>

<span onclick="return confirm('Seçili kayıtın güncellenmesinden emin misiniz?')">

<asp:LinkButton ID="btnUpdate" runat="server" Text="Update" CommandName="Update" />

</span>

<asp:LinkButton ID="btnCancel" runat="server" Text="Cancel" CommandName="Cancel" />

</td>

</tr>

</EditItemTemplate>

<InsertItemTemplate>

<tr class="insert" style="font-size:24px;">

<td>

Yazar:

<asp:TextBox ID="txtYazar" runat="server" Text='<%# Eval("Yazar") %>' />

</td>

<td>

Kitap:

<asp:TextBox ID="txtKitap" runat="server" Text='<%# Eval("Kitap") %>' />

</td>

<td>

Fiyat:

<asp:TextBox ID="txtFiyat" runat="server" Text='<%# Eval("Fiyat") %>' />

</td>

<td>

<span onclick="return confirm('Yeni kayıt girişinden emin misiniz?')">

<asp:LinkButton ID="btnInsert" runat="server" Text="Insert" CommandName="Insert" />

</span>

</td>

</tr>

</InsertItemTemplate>

</asp:ListView>

<div style="text-align: center; font-weight: bold;" class="auto-style1">

<asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="5">

<Fields>

<asp:NumericPagerField ButtonCount="5" />

</Fields>

</asp:DataPager>

</div>

        </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...