How to
Insert Record with Footer Row Controls
ASPX PAGE CODE
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!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>
    <style type="text/css">
        .style1
        {
            width:
100%;
        }
        .lft20
        {
          margin-left:50px;
          position :relative ;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    </div>
    <asp:GridView ID="GridView1" runat="server" ShowFooter="True" 
        AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
        GridLines="None" onrowcancelingedit="GridView1_RowCancelingEdit" 
        onrowcommand="GridView1_RowCommand" onrowdeleting="GridView1_RowDeleting"
        onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
       >
        <RowStyle BackColor="#EFF3FB" />
    <Columns >
        <asp:CommandField ShowEditButton="True" />
        <asp:CommandField ShowDeleteButton="True" />
    <asp:TemplateField HeaderText
="Id">
    <ItemTemplate>
    <asp:Label ID="lblid" runat
="server" Text='<%# bind("id") %>'></asp:Label>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText
="Name">
    <ItemTemplate>
    <asp:Label ID="lblname" runat
="server" Text='<%# bind("name") %>' CssClass ="lft20"
></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID="txtname" runat
="server" Width
="120px" Height="20px" Text
='<%# bind("name") %>'></asp:TextBox>
    </EditItemTemplate>
   <FooterTemplate>
    <table class="style1">
           <tr>
               <td>
                   Name</td>
               <td>
                   <asp:TextBox ID="txtnamef" runat="server" Height="22px" Width="120px"></asp:TextBox>
                   <asp:Button ID="Button1" runat="server" CommandName="Insert" Height="24px" 
                       Text="Add" Width="52px" />
               </td>
           </tr>
       </table>
     </FooterTemplate>
    </asp:TemplateField>
      </Columns>
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="Pink" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    </form>
</body>
</html>
ASPX.CS PAGE CODE
using System;
using System.Collections;
using System.Configuration;
using System.Data;
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.Data.SqlClient;
public partial class Default2 :
System.Web.UI.Page
{
    #region
Public variable
       DataTable
dt;
       SqlDataAdapter
da;
       SqlCommandBuilder
scb;
       public string constr =       ConfigurationManager.ConnectionStrings["DemoConnectionString2"].ConnectionString.ToString();
    #endregion
    /// <summary>
    /// Binding GridView in Form Load Event when page is not
postback
    /// </summary>
    /// <param
name="sender"></param>
    /// <param
name="e"></param>
    protected void Page_Load(object
sender, EventArgs e)
    {
        if
(!Page.IsPostBack)
        {
            fillgrid();
        }
    }
    /// <summary>
    /// Method for fill GridView in Disconnected Architecture
    /// </summary>
    public void fillgrid()
    {
        da = new
SqlDataAdapter("select
* from stu_info", constr);
        dt = new
DataTable();
        da.Fill(dt);
        #region to
show fotter row in grind view if table is empty
        if
(dt.Rows.Count < 1)
        {
            dt.Rows.Add(dt.NewRow());
            GridView1.DataSource = dt;
            GridView1.DataBind();
            GridView1.Rows[0].Style.Add("display", "none");
        } 
        #endregion
        #region
bind gridview with datatable
        else
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        #endregion
    }
   /// <summary>
   /// Insert Record with footer TextBox
   /// </summary>
   /// <param
name="sender"></param>
   /// <param
name="e"></param>
    protected void GridView1_RowCommand(object
sender, GridViewCommandEventArgs e)
    {
        //TextBox t1
= ((TextBox)GridView1.FooterRow.Cells[3].Controls[1]);
            if
(e.CommandName == "Insert")
            {
                TextBox
t1 = ((TextBox)GridView1.FooterRow.Cells[3].FindControl("txtnamef"));
                if
(t1.Text.Trim().Length > 0)
                {
                da = new
SqlDataAdapter("select
* from stu_info", constr);
                dt = new
DataTable();
                da.Fill(dt);
                DataRow
dr = dt.NewRow();
                dr["name"]
= t1.Text;
                dt.Rows.Add(dr);
                scb = new
SqlCommandBuilder(da);
                da.Update(dt);
                fillgrid();
                }
                else
                {
   #region
Footer TextBox is empty then alert Please enter name and set focus in footer
TextBox
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
"msg", "<script>
alert('" + " Please Enter
Name" + "')" + "</script>", false);
                    t1.Focus();
                   
#endregion
                }
            }
    }
    /// <summary>
    /// Deleting a particular row in GridView 
    /// </summary>
    /// <param
name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDeleting(object
sender, GridViewDeleteEventArgs e)
    {
        da = new
SqlDataAdapter("select
* from stu_info", constr);
        dt = new
DataTable();
        da.Fill(dt);
        foreach
(DataRow dr in
dt.Rows)
        {
            #region if
id match in gridview row
            if
(dr[0].ToString() == ((Label)GridView1.Rows[e.RowIndex].Cells[2].Controls[1]).Text)
            #endregion
            {
                #region
deleting Row and UpdatePanel DataTable and Bind grinview
                dr.Delete();
                scb = new
SqlCommandBuilder(da);
                da.Update(dt);
                fillgrid(); 
                      #endregion
                break;
            }
        }
    }
    /// <summary>
    /// Generate edit row index
    /// </summary>
    /// <param
name="sender"></param>
    /// <param
name="e"></param>
    protected void GridView1_RowEditing(object
sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        fillgrid();
    }
    /// <summary>
    /// Removing edit row index 
    /// </summary>
    /// <param
name="sender"></param>
    /// <param
name="e"></param>
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs
e)
    {
        GridView1.EditIndex = -1;
        fillgrid();
    }
    /// <summary>
    /// Update the Name with gridview edit row
    /// </summary>
    /// <param
name="sender"></param>
    /// <param
name="e"></param>
    protected void GridView1_RowUpdating(object
sender, GridViewUpdateEventArgs e)
    {
        da = new
SqlDataAdapter("select
* from stu_info", constr);
        dt = new
DataTable();
        da.Fill(dt);
        foreach
(DataRow dr in
dt.Rows)
        {
            if
(dr[0].ToString() == ((Label)GridView1.Rows[e.RowIndex].Cells[2].Controls[1]).Text)
            {
                dr["name"]
= ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[1]).Text;
                scb = new
SqlCommandBuilder(da);
                da.Update(dt);
                GridView1.EditIndex = -1;
                fillgrid();
                break;
            }
        }
    }
}







0 comments:
Post a Comment