Thursday, December 1, 2011

Gridview with linq

Download Code

in .Aspx Page


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridwithlinq.aspx.cs" Inherits="gridwithlinq" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" ShowFooter="true"
        AutoGenerateColumns="false" DataKeyNames="id"
            onrowcancelingedit="GridView1_RowCancelingEdit"
            onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
        >
        <Columns>
        <asp:TemplateField HeaderText="ID">
        <ItemTemplate>
            <asp:Label ID="lblI" runat="server" Text='<%#Eval("id") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:Label ID="lblId" runat="server" Text='<%#Eval("id") %>'></asp:Label>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox ID="txtIId" runat="server"></asp:TextBox>
        </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Name">
        <ItemTemplate>
            <asp:Label ID="lblName" runat="server" Text='<%#Eval("name") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("name") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox ID="txtIName" runat="server"></asp:TextBox>
        </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="City">
        <ItemTemplate>
            <asp:Label ID="lblCity" runat="server" Text='<%#Eval("city") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
           <asp:TextBox ID="txtCity" runat="server" Text='<%#Eval("city") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox ID="txtICity" runat="server"></asp:TextBox>
        </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Command">
        <ItemTemplate>
            <asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="Edit" />
            <asp:Button ID="Delete" runat="server" Text="Delete"  CommandName="Delete"/>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:Button ID="btnUpdate" runat="server" Text="Update"  CommandName="Update"/>
            <asp:Button ID="btnCancel" runat="server" Text="Cancel"  CommandName="Cancel"/>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:Button ID="btnInsert" runat="server" Text="Insert"
                onclick="btnInsert_Click" />
        </FooterTemplate>
        </asp:TemplateField>
        </Columns>
       
        </asp:GridView>
    </div>
    </form>
</body>
</html>


in .cs page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class gridwithlinq : System.Web.UI.Page
{
    linqDataContext lb = new linqDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind_Grid();
        }

    }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row;
        row = GridView1.Rows[e.RowIndex];

        Label id = row.FindControl("lblId") as Label;
        TextBox name = row.FindControl("txtName") as TextBox;
        TextBox city = row.FindControl("txtCity") as TextBox;

        detail d = lb.details.First(p => p.ID.Equals(Convert.ToInt32(id.Text)));
        d.name = name.Text;
        d.city = city.Text;
        lb.SubmitChanges();
        GridView1.EditIndex = -1;
        bind_Grid();



    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        bind_Grid();

    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int id;
        id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);

        detail d=lb.details.First(p=>p.ID.Equals(id));
        lb.details.DeleteOnSubmit(d);
        lb.SubmitChanges();
        bind_Grid();


    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        bind_Grid();
    }
    protected void btnInsert_Click(object sender, EventArgs e)
    {
        TextBox id = GridView1.FooterRow.FindControl("txtIId") as TextBox;
        TextBox name = GridView1.FooterRow.FindControl("txtIName") as TextBox;
        TextBox city = GridView1.FooterRow.FindControl("txtICity") as TextBox;
        detail d = new detail();
        d.ID = Convert.ToInt32(id.Text);
        d.name = name.Text;
        d.city = city.Text;

        lb.details.InsertOnSubmit(d);
        lb.SubmitChanges();
        bind_Grid();
        

    }
    protected void bind_Grid()
    {
        GridView1.DataSource = lb.details.ToList();
        GridView1.DataBind();
    
    }
}