Monday, March 9, 2015

How to insert new row in GridView in Asp.Net.


Here we are binding a GridView in Asp.Net and C#.

Points Of Remember:

1. Place a TextBox in all column of FooterTemplate except first column.
2. Fire GridView's SeletedIndexChanging event.
3. Place a LinkButton with CommandName Select in first column of FooterTemplate.
4. Add namespace System.Data and System.Data.SqlClient in your C# page.
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>How to Insert new row in GridView</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CellPadding="4"  
         ForeColor="#333333" ShowFooter="True"
         OnSelectedIndexChanging="GridView1_SelectedIndexChanging" >
          <Columns>
           <asp:TemplateField>
              <FooterTemplate>
               <asp:LinkButton ID="LkB1" runat="server"CommandName="Select">Insert</asp:LinkButton>
              </FooterTemplate>
           </asp:TemplateField>
           <asp:TemplateField HeaderText="Name">
              <ItemTemplate>
                 <asp:Label ID="Label1" runat="server" Text='<%# Eval("Name"%>'></asp:Label>
              </ItemTemplate>
              <FooterTemplate>
                 <asp:TextBox ID="txt_Name" runat="server"></asp:TextBox>
               </FooterTemplate>
           </asp:TemplateField>
           <asp:TemplateField HeaderText="Branch">
               <ItemTemplate>
                  <asp:Label ID="Label2" runat="server" Text='<%# Eval("Branch")%>'></asp:Label>
               </ItemTemplate>
               <FooterTemplate>
                  <asp:TextBox ID="txt_Branch" runat="server"></asp:TextBox>
               </FooterTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City">
               <ItemTemplate>
                  <asp:Label ID="Label3" runat="server" Text='<%# Eval("City"%>'></asp:Label>
               </ItemTemplate>
               <FooterTemplate>
                  <asp:TextBox ID="txt_City" runat="server"></asp:TextBox>
               </FooterTemplate>
            </asp:TemplateField>
          </Columns> 
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />       
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        </asp:GridView>
    </div>
    </form>
</body>
</html>

C# Codes :

using System.Data;
using System.Data.SqlClient;

public partial class GridView_Insertrow : System.Web.UI.Page
{
    // sql connection
    SqlConnection con = new SqlConnection(@"Data Source=RAVI-PC\SQL;Initial
                                                                                  Catalog=db_Student;Integrated Security=True");
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGridView();
        }
    }

    //method for binding GridView
    protected void BindGridView()
    {
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter("Select ID, Name,Branch,City from tbl_student", con);
        con.Open();
        da.Fill(dt);
        con.Close();

        if (dt.Rows.Count > 0)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }

    // insert new record in database
    protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        // find values for update
        TextBox txtname = (TextBox)GridView1.FooterRow.FindControl("txt_Name");
        TextBox txtbranch = (TextBox)GridView1.FooterRow.FindControl("txt_Branch");
        TextBox txtcity = (TextBox)GridView1.FooterRow.FindControl("txt_City");

        // insert values into database
        SqlCommand cmd = new SqlCommand("insert into tbl_student(Name, Branch, City)
                          values('" + txtname.Text + "','" + txtbranch.Text + "','" + txtcity.Text + "')", con);
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

        BindGridView();
    }
}

View output :

demo



Now over to you:
"A blog is nothing without reader's feedback and comments. So please provide your valuable feedback so that i can make this blog better and If you like my work, you can appreciate by leaving your comments. Stay tuned and stay connected for more technical updates."

No comments:

Post a Comment