Yazı Font Küçült Yazı Font Büyült

GridView da Button Kullanarak Satır Ekleme

 

Merhaba arkadaşlar. Bu makalemizde  GridView nesnesine eklediğimiz Button a tıkladığımızda GridView a satır ekleyeceğiz.  GridView nesnesinin AutoGenerateColumns="False" yapın. Ayrıca Buttonu GridView ın alt kısmına ekleyeceğimiz için ShowFooter="True" yapınız.

GridView Columns kısmındaki ItemTemplate ye 3 TextBox ve 1 DropDownList ekleyeceğiz.

 

Ekran Çıktısı

Resim1

Şekil 1

Default.aspx.cs

using System;

using System.Collections.Generic;

using System.Data;

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)

    {

                if (!Page.IsPostBack)

        {

            veri(); 

                   

        }

 

 

    }

 

    private void veri ()

    {

   

        DataTable dt = new DataTable();

        DataRow dr = null;

        dt.Columns.Add(new DataColumn("SiraNo", typeof(string)));

        dt.Columns.Add(new DataColumn("Sutun1", typeof(string)));

        dt.Columns.Add(new DataColumn("Sutun2", typeof(string)));

        dt.Columns.Add(new DataColumn("Sutun3", typeof(string)));

        dt.Columns.Add(new DataColumn("Sutun4", typeof(string)));

        dr = dt.NewRow();

        dr["SiraNo"] = 1;

        dr["Sutun1"] = string.Empty;

        dr["Sutun2"] = string.Empty;

        dr["Sutun3"] = string.Empty;

        dr["Sutun4"] = string.Empty;

        dt.Rows.Add(dr);

      

 

        //viewstate e yazıyoruz

        ViewState["Geçerli Tablo"] = dt;

 

        GridView1.DataSource = dt;

        GridView1.DataBind();

    }

 

  

    private void SatirEkle()

    {

        int satirIndeks = 0;

 

        if (ViewState["Geçerli Tablo"] != null)

        {

            DataTable dtGecerliTablo = (DataTable)ViewState["Geçerli Tablo"];

            DataRow drSatir = null;

            if (dtGecerliTablo.Rows.Count > 0)

            {

                for (int i = 1; i <= dtGecerliTablo.Rows.Count; i++)

                {

                    //TextBoxtaki bilgileri alıyoruz

                    TextBox tbox1 = (TextBox)GridView1.Rows[satirIndeks].Cells[1].FindControl("TextBox1");

                    TextBox tbox2 = (TextBox)GridView1.Rows[satirIndeks].Cells[2].FindControl("TextBox2");

                    TextBox tbox3 = (TextBox)GridView1.Rows[satirIndeks].Cells[3].FindControl("TextBox3");

                    DropDownList ddl = (DropDownList)GridView1.Rows[satirIndeks].Cells[3].FindControl("DropDownList1");

 

                    drSatir = dtGecerliTablo.NewRow();

                    drSatir["SiraNo"] = i + 1;

 

                    dtGecerliTablo.Rows[i - 1]["Sutun1"] = tbox1.Text;

                    dtGecerliTablo.Rows[i - 1]["Sutun2"] = tbox2.Text;

                    dtGecerliTablo.Rows[i - 1]["Sutun3"] = tbox3.Text;

                    dtGecerliTablo.Rows[i - 1]["Sutun4"] = ddl.Text;

 

                    satirIndeks++;

                }

                dtGecerliTablo.Rows.Add(drSatir);

                ViewState["Geçerli Tablo"] = dtGecerliTablo;

 

                GridView1.DataSource = dtGecerliTablo;

                GridView1.DataBind();

            }

        }

        else

        {

            Response.Write("ViewState nesnesi boş");

        }

 

        //postback yaparken bir önceki verileri getiriyoruz

       OncekiVeriyiAl();

    }

 

    private void OncekiVeriyiAl()

    {

        int satirIndeks = 0;

        if (ViewState["Geçerli Tablo"] != null)

        {

            DataTable dt = (DataTable)ViewState["Geçerli Tablo"];

            if (dt.Rows.Count > 0)

            {

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    TextBox tbox1 = (TextBox)GridView1.Rows[satirIndeks].Cells[1].FindControl("TextBox1");

                    TextBox tbox2 = (TextBox)GridView1.Rows[satirIndeks].Cells[2].FindControl("TextBox2");

                    TextBox tbox3 = (TextBox)GridView1.Rows[satirIndeks].Cells[3].FindControl("TextBox3");

                    DropDownList ddl = (DropDownList)GridView1.Rows[satirIndeks].Cells[3].FindControl("DropDownList1");

 

                    tbox1.Text = dt.Rows[i]["Sutun1"].ToString();

                    tbox2.Text = dt.Rows[i]["Sutun2"].ToString();

                    tbox3.Text = dt.Rows[i]["Sutun3"].ToString();

                    ddl.Text = dt.Rows[i]["Sutun4"].ToString();

 

                    satirIndeks++;

                }

            }

        }

    }

 

    protected void Button1_Click(object sender, EventArgs e)

    {

        SatirEkle();

    }

 

 

  

}

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>

</head>

<body>

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

    <div>

   

        <asp:GridView ID="GridView1" runat="server" ShowFooter="True" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None">

            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

         <Columns>

        <asp:BoundField DataField="SiraNo" HeaderText="Sıra No" />

        <asp:TemplateField HeaderText="Ad">

            <ItemTemplate>

                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

            </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="Soyad">

            <ItemTemplate>

                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

            </ItemTemplate>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="Mail">

            <ItemTemplate>

                 <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>

            </ItemTemplate>

            <FooterStyle HorizontalAlign="Right" />

           

          </asp:TemplateField>

             <asp:TemplateField HeaderText="Memleket">

            <ItemTemplate>

            <asp:DropDownList ID="DropDownList1" runat="server">

            <asp:ListItem>Ankara</asp:ListItem>

            <asp:ListItem>İstanbul</asp:ListItem>

            <asp:ListItem>İzmir</asp:ListItem>

            <asp:ListItem>Trabzon</asp:ListItem>

            <asp:ListItem>Elazığ</asp:ListItem>

            <asp:ListItem>Antalya</asp:ListItem>

            <asp:ListItem>Erzurum</asp:ListItem>

            <asp:ListItem>Van</asp:ListItem>

            <asp:ListItem>Konya</asp:ListItem>

            <asp:ListItem>Bursa</asp:ListItem>

            <asp:ListItem>Kayseri</asp:ListItem>

            <asp:ListItem>Diyarbakır</asp:ListItem>

        </asp:DropDownList>

            </ItemTemplate>

            <FooterStyle HorizontalAlign="Right" />

            <FooterTemplate>

            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click"  Text="Ekle" Width="82px" />

            </FooterTemplate>

        </asp:TemplateField>

 

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

   

    </div>

       

      

       

    </form>

</body>

</html>

 

Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN