Here I would like to share easy methods to insert new datarow
in asp.net.In gridview there is no default insert row option like listview
.however we can do by our self by using our tricks to accomplish insert new row
features in asp.net.
In a previous article I have wrote about insert ,edit and
delete data in grdiview…For your reference I have mention the link as below…
In the code example, I have not been using database connetion;
instead of I created dynamic data on datatable.
First I could start from the client side code…
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" ShowFooter="true"
OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="Mark1">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%#Eval("m1") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mark2">
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%#Eval("m2") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mark3">
<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%#Eval("m3") %>'></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="Button1" runat="server" Text="ADD" OnClick="btnadd" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle HorizontalAlign="Right" />
</asp:GridView>
|
In above code I used add
button on the footer template, and don’t forget to add the code ShowFooter="true"
on gridview tag, then only the add button will be visible on footer
template.
Second we need to bind the
data in gridview on Page load event..
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
|
Here I wrote the
separate function to bind the data on gridview using bind method
void
bind()
{
dt.Columns.Add("m1");
dt.Columns.Add("m2");
dt.Columns.Add("m3");
//Here you can
call select query statement,get the data from database and
//bind into
gridview..
//eg.sql="select
* from test"
//Get the data
into datatabe
dr = dt.NewRow();
dt.Rows.Add(dr);
//Store the
datatable value in session
Session["dt"] = dt;
//storing
total rows count value
Session["count"] = dt.Rows.Count;
GridView1.DataSource = dt;
GridView1.DataBind();
}
|
Next we write the
code to on add button gridview .In a client I have added the btnadd function on
button onclick event.
public void
btnadd(object sender,EventArgs e)
{
int rwindex = (int)Session["count"] - 1;
TextBox t1, t2, t3;
//Here find
the control and get the value from the gridview
t1 = (TextBox)GridView1.Rows[rwindex].FindControl("textbox2");
t2 = (TextBox)GridView1.Rows[rwindex].FindControl("textbox3");
t3 = (TextBox)GridView1.Rows[rwindex].FindControl("textbox4");
//Here you can
insert the data into database by using SQL query
//Once you
insert into database and call the bind method
//But here i
used a datatable for sample....
dt = (DataTable)Session["dt"];
dr = dt.NewRow();
dr["m1"] = t1.Text;
dr["m2"] = t2.Text;
dr["m3"] = t3.Text;
dt.Rows.InsertAt(dr, rwindex);
Session["dt"] = dt;
Session["count"] = dt.Rows.Count;
GridView1.DataSource = dt;
GridView1.DataBind();
|
That’s it now you can insert the new row data on gridview.By
simply clicking add button on gridview.
I hope you like the easiest way to insert new row on
gridview..
Download the source code..
Post your comments and doubt about the article.