<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 gridviewinclurowediting (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 = "";
}