<asp:GridView ID="GridView1" runat="server"
onrowediting="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<table>
<tr>
<td>text:<asp:TextBox ID="newtextTextBox" runat="server"></asp:TextBox></td>
<td>amount:<asp:TextBox ID="amountTextBox" runat="server"></asp:TextBox></td>
</tr>
</table>
<asp:Button ID="addnewlineButton" runat="server" Text="add new line" OnClick="addnewlineButton_Click" />
cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("text");
dt.Columns.Add("amount");
ViewState["table"] = dt;
BindGrid();
}
}
private void BindGrid()
{
DataTable dt = ViewState["table"] as DataTable;
if (dt != null)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGrid();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DataTable dt = ViewState["table"] as DataTable;
if (dt != null)
{
dt.Rows.RemoveAt(e.RowIndex);
GridView1.EditIndex = -1;
BindGrid();
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataTable dt=ViewState["table"] as DataTable;
if (dt != null)
{
dt.Rows[e.RowIndex][0] = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
dt.Rows[e.RowIndex][1] = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
GridView1.EditIndex = -1;
BindGrid();
}
}
protected void addnewlineButton_Click(object sender, EventArgs e)
{
DataTable dt=ViewState["table"] as DataTable;
if (dt != null)
{
DataRow dr = dt.NewRow();
dr[0] = newtextTextBox.Text;
dr[1] = amountTextBox.Text;
dt.Rows.Add(dr);
ViewState["table"] = dt;
BindGrid();
newtextTextBox.Text = "";
amountTextBox.Text = "";
}