在程序执行过程中,创建控件,可单击页中的按钮时,创建的控件消失,请问个位高人,如果控件创建的控件在,执行其他操作时不消失。代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
  if(!IsPostBack)
  {
int numrows = 3;//表行数,
int numcells = 4;//每行的Cell数
for (int j=0; j<numrows; j++) 
{            
             TableRow newRow = new TableRow();               
    for (int i=0; i<numcells; i++) 
    {
TableCell newCell = new TableCell();
         newCell.Controls.Add(new LiteralControl("行 " + j.ToString() + ":"));
TextBox newControl = new TextBox();
newControl.Text = "单元格 " + i.ToString();
newCell.Controls.Add(newControl);
newRow.Cells.Add(newCell);
   }               
  Table1.Rows.Add(newRow);
         }
      }
}
其Html代码如下:
<%@ Page language="c#" Codebehind="ApplyTable.aspx.cs" AutoEventWireup="false" Inherits="ApplyTable.WebForm1" enableViewState="True"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<body>
<h3><font face="宋体">
    <form runat="server" ID="Form1">
    <asp:Table id="Table1" Font-Name="宋体" Font-Size="9pt" CellPadding="5"    CellSpacing="0" BorderColor="black" Gridlines="Both" runat="server" />
<p>
 <asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
</p>
</form>
</body>
</HTML>
点击Button2控钮后,创建控件消失

解决方案 »

  1.   

    使用JavaScript的方法比较容易实现,如果要在服务器端后台代码中实现,那点击按纽后要进行一次页面的提交,在点击按钮的事件里将所要隐藏的控件的Visiable属性设置为false,就可以实现了
      

  2.   

    如果是这种在Table.Cell中的控件,可以用Table.Cell.FindControl来找到绑定好的控件
      

  3.   

    烂办法
    DataGrid a = MakeGrid(DT);
    a.ClientID = Session["ClientID "];
    this.Controls.Add(a);
    在你的按扭事件里删除
    this.Controls.Remove(Session["ClientID "].Tostring());下面这个方法是好用的,,,删除这块没测试,你搞一下。差不多
    public DataGrid MakeGrid(DataTable DT)
    {
    DataGrid mygrid = new DataGrid();
    mygrid.CellPadding=3;
    mygrid.Attributes.Add("align","center");
    mygrid.CellSpacing=0;
    mygrid.Width=750;
    mygrid.BorderWidth=1;
    mygrid.BorderColor=ColorTranslator.FromHtml("#dbe6de");
    mygrid.AutoGenerateColumns=false;
    mygrid.ForeColor=ColorTranslator.FromHtml("Black");
    mygrid.Font.Size=9;
    mygrid.Font.Name="宋体";
    mygrid.AllowSorting=true;
    mygrid.HeaderStyle.BackColor=ColorTranslator.FromHtml("#dbe6de");
    mygrid.HeaderStyle.ForeColor=ColorTranslator.FromHtml("Black");
    mygrid.HeaderStyle.Font.Name="宋体";
    mygrid.HeaderStyle.Font.Size=9;
    mygrid.HeaderStyle.Font.Bold=true;
    mygrid.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;// ///设置alternating style
    // mygrid.AlternatingItemStyle.BackColor=ColorTranslator.FromOle(int.Parse("dbe6de"));
    // mygrid.AlternatingItemStyle.ForeColor=ColorTranslator.FromHtml("Black"); ///设置itemstyle
    mygrid.ItemStyle.HorizontalAlign=HorizontalAlign.Left; ///创建绑定列和属性
    BoundColumn b = new BoundColumn();
    BoundColumn c = new BoundColumn();
    BoundColumn d = new BoundColumn();
    BoundColumn e = new BoundColumn();
    BoundColumn f = new BoundColumn();
    BoundColumn g = new BoundColumn();
    BoundColumn h = new BoundColumn();
    BoundColumn i = new BoundColumn();
    BoundColumn j = new BoundColumn(); b.HeaderText="关键字";
    b.DataField="关键字";
    b.HeaderStyle.Width=150; c.HeaderText="状态";
    c.DataField="状态";
    c.HeaderStyle.Width=50; d.HeaderText="最高每次点击费用";
    d.DataField="最高每次点击费用";
    d.HeaderStyle.Width=110; e.HeaderText="点击次数";
    e.DataField="点击次数";
    b.HeaderStyle.Width=100; f.HeaderText="展示次数";
    f.DataField="展示次数";
    b.HeaderStyle.Width=100; g.HeaderText="点击率";
    g.DataField="点击率";
    b.HeaderStyle.Width=50; h.HeaderText="平均每次点击费用";
    h.DataField="平均每次点击费用";
    b.HeaderStyle.Width=100; i.HeaderText="费用";
    i.DataField="费用";
    b.HeaderStyle.Width=50; j.HeaderText="平均排名";
    j.DataField="平均排名";
    b.HeaderStyle.Width=40; mygrid.Columns.AddAt(0, b);
    mygrid.Columns.AddAt(1, c);
    mygrid.Columns.AddAt(2, d);
    mygrid.Columns.AddAt(3, e);
    mygrid.Columns.AddAt(4, f);
    mygrid.Columns.AddAt(5, g);
    mygrid.Columns.AddAt(6, h);
    mygrid.Columns.AddAt(7, i);
    mygrid.Columns.AddAt(8, j); ///绑定和返回
    mygrid.DataSource = DT;
    mygrid.DataBind();
    return mygrid;
    }