Copy codeThe Code is as follows:
<% @ Page Language = "C #" EnableViewState = "true" %>
<% @ Import Namespace = "System. Data" %>
<! DOCTYPE html PUBLIC "-// W3C // dtd xhtml 1.0 Transitional // EN"
Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<Script runat = "server">
Private DataTable stoveTable = null;
Protected void Page_Load (object sender, EventArgs e)
{
If (! Page. IsPostBack)
{
// Create EmptyDataTemplate
This. GridView_list.DataBind ();
}
}
Protected void GridView_list_RowDataBound (object sender, GridViewRowEventArgs e)
{
If (e. Row. RowType = DataControlRowType. DataRow)
{
String usage = DataBinder. Eval (e. Row. DataItem, "usage"). ToString ();
String steelKind = DataBinder. Eval (e. Row. DataItem, "steelKind"). ToString ();
String castingTon = DataBinder. Eval (e. Row. DataItem, "castingTon"). ToString ();
DropDownList x1 = e. Row. FindControl ("x1") as DropDownList;
DropDownList x2 = e. Row. FindControl ("x2") as DropDownList;
TextBox x3 = e. Row. FindControl ("x3") as TextBox;
X3.Text = castingTon;
ListItem xx1 = x1.Items. FindByValue (usage );
If (xx1! = Null) xx1.Selected = true;
ListItem xx2 = x2.Items. FindByValue (steelKind );
If (xx2! = Null) xx2.Selected = true;
}
}
Protected void linkbutton#click (object sender, EventArgs e)
{
DropDownList x1, x2;
TextBox x3;
If (GridView_list.Rows.Count = 0)
{
X1 = GridView_list.Controls [0]. Controls [0]. FindControl ("x1") as DropDownList;
X2 = GridView_list.Controls [0]. Controls [0]. FindControl ("x2") as DropDownList;
X3 = GridView_list.Controls [0]. Controls [0]. FindControl ("x3") as TextBox;
}
Else
{
GridViewRow r = GridView_list.FooterRow;
X1 = r. FindControl ("x1") as DropDownList;
X2 = r. FindControl ("x2") as DropDownList;
X3 = r. FindControl ("x3") as TextBox;
}
If (ViewState ["dt"] = null)
{
StoveTable = new DataTable ();
StoveTable. Columns. Add ("usage", typeof (String ));
StoveTable. Columns. Add ("steelKind", typeof (String ));
StoveTable. Columns. Add ("castingTon", typeof (String ));
}
Else
{
StoveTable = (DataTable) ViewState ["dt"];
}
DataRow newRow = stoveTable. NewRow ();
NewRow ["usage"] = x1.SelectedValue;
NewRow ["steelKind"] = x2.SelectedValue;
NewRow ["castingTon"] = x3.Text;
StoveTable. Rows. Add (newRow );
ViewState ["dt"] = stoveTable;
This. GridView_list.DataSource = stoveTable;
This. GridView_list.DataBind ();
}
Protected void LinkButton2_Click (object sender, EventArgs e)
{
If (ViewState ["dt"] = null)
{
Return;
}
StoveTable = (DataTable) ViewState ["dt"];
If (stoveTable. Rows. Count <1) return;
StoveTable. Rows. RemoveAt (stoveTable. Rows. Count-1 );
ViewState ["dt"] = stoveTable;
This. GridView_list.DataSource = stoveTable;
This. GridView_list.DataBind ();
}
Protected void x1_SelectedIndexChanged (object sender, EventArgs e)
{
DropDownList x1 = sender as DropDownList;
GridViewRow r = x1.Parent. Parent as GridViewRow;
If (ViewState ["dt"] = null)
{
Response. Write ("Error ");
Return;
}
StoveTable = (DataTable) ViewState ["dt"];
StoveTable. Rows [r. RowIndex] ["usage"] = x1.SelectedValue;
ViewState ["dt"] = stoveTable;
This. GridView_list.DataSource = stoveTable;
This. GridView_list.DataBind ();
}
Protected void x2_SelectedIndexChanged (object sender, EventArgs e)
{
DropDownList x2 = sender as DropDownList;
GridViewRow r = x2.Parent. Parent as GridViewRow;
If (ViewState ["dt"] = null)
{
Response. Write ("Error ");
Return;
}
StoveTable = (DataTable) ViewState ["dt"];
StoveTable. Rows [r. RowIndex] ["steelKind"] = x2.SelectedValue;
ViewState ["dt"] = stoveTable;
This. GridView_list.DataSource = stoveTable;
This. GridView_list.DataBind ();
}
Protected void x3_TextChanged (object sender, EventArgs e)
{
TextBox x3 = sender as TextBox;
GridViewRow r = x3.Parent. Parent as GridViewRow;
If (ViewState ["dt"] = null)
{
Response. Write ("Error ");
Return;
}
StoveTable = (DataTable) ViewState ["dt"];
StoveTable. Rows [r. RowIndex] ["castingTon"] = x3.Text;
ViewState ["dt"] = stoveTable;
This. GridView_list.DataSource = stoveTable;
This. GridView_list.DataBind ();
}
</Script>
<Html xmlns = "http://www.w3.org/1999/xhtml">
<Head id = "Head1" runat = "server">
<Title> </title>
</Head>
<Body>
<Form id = "form1" runat = "server">
<Asp: GridView ID = "GridView_list" runat = "server" ShowFooter = "true" AutoGenerateColumns = "false"
OnRowDataBound = "GridView_list_RowDataBound">
<EmptyDataTemplate>
<Table style = "border-collapse: collapse; width: 100%" cellspacing = "0" rules = "all"
Border = "1">
<Tr>
<Th scope = "col">
Select 1
</Th>
<Th scope = "col">
Select 2
</Th>
<Th scope = "col">
Input text
</Th>
</Tr>
<Tr> <td>
<Asp: DropDownList ID = "x1" runat = "server">
<Asp: ListItem> L0 </asp: ListItem>
<Asp: ListItem> L1 </asp: ListItem>
<Asp: ListItem> L2 </asp: ListItem>
<Asp: ListItem> L3 </asp: ListItem>
</Asp: DropDownList>
</Td> <td>
<Asp: DropDownList ID = "x2" runat = "server">
<Asp: ListItem> 10 # </asp: ListItem>
<Asp: ListItem> 20 # </asp: ListItem>
<Asp: ListItem> 30 # </asp: ListItem>
<Asp: ListItem> 40 # </asp: ListItem>
</Asp: DropDownList>
</Td> <td>
<Asp: TextBox ID = "x3" runat = "server"> </asp: TextBox>
</Td> </tr>
</Table>
</EmptyDataTemplate>
<Columns>
<Asp: TemplateField HeaderText = "select 1">
<ItemTemplate>
<Asp: DropDownList ID = "x1" runat = "server" AutoPostBack = "true" OnSelectedIndexChanged = "xforwardedselectedindexchanged">
<Asp: ListItem> L0 </asp: ListItem>
<Asp: ListItem> L1 </asp: ListItem>
<Asp: ListItem> L2 </asp: ListItem>
<Asp: ListItem> L3 </asp: ListItem>
</Asp: DropDownList>
</ItemTemplate>
<FooterTemplate>
<Asp: DropDownList ID = "x1" runat = "server">
<Asp: ListItem> L0 </asp: ListItem>
<Asp: ListItem> L1 </asp: ListItem>
<Asp: ListItem> L2 </asp: ListItem>
<Asp: ListItem> L3 </asp: ListItem>
</Asp: DropDownList>
</FooterTemplate>
</Asp: TemplateField>
<Asp: TemplateField HeaderText = "select 2">
<ItemTemplate>
<Asp: DropDownList ID = "x2" runat = "server" AutoPostBack = "true" OnSelectedIndexChanged = "x2_SelectedIndexChanged">
<Asp: ListItem> 10 # </asp: ListItem>
<Asp: ListItem> 20 # </asp: ListItem>
<Asp: ListItem> 30 # </asp: ListItem>
<Asp: ListItem> 40 # </asp: ListItem>
</Asp: DropDownList>
</ItemTemplate>
<FooterTemplate>
<Asp: DropDownList ID = "x2" runat = "server">
<Asp: ListItem> 10 # </asp: ListItem>
<Asp: ListItem> 20 # </asp: ListItem>
<Asp: ListItem> 30 # </asp: ListItem>
<Asp: ListItem> 40 # </asp: ListItem>
</Asp: DropDownList>
</FooterTemplate>
</Asp: TemplateField>
<Asp: TemplateField HeaderText = "input text">
<ItemTemplate>
<Asp: TextBox ID = "x3" runat = "server" AutoPostBack = "true" OnTextChanged = "x3_TextChanged"> </asp: TextBox>
</ItemTemplate>
<FooterTemplate>
<Asp: TextBox ID = "x3" runat = "server"> </asp: TextBox>
</FooterTemplate>
</Asp: TemplateField>
</Columns>
</Asp: GridView>
<Asp: LinkButton ID = "LinkButton1" runat = "server" Text = "add content" OnClick = "linkbutton#click"> </asp: LinkButton>
<Asp: LinkButton ID = "LinkButton2" runat = "server" Text = "Delete content" OnClick = "LinkButton2_Click"> </asp: LinkButton>
</Form>
</Body>
</Html>