搜索了很多帖子,对具体的问题有所了解,但还是没找到解决方法事件:button激发一个添加表格的行的事件程序:private void Button2_ServerClick(object sender, System.EventArgs e)
{ HtmlTableRow r = new HtmlTableRow() ;
HtmlTableCell c=new HtmlTableCell();
HtmlInputFile File=new HtmlInputFile();
File.ID="file1";
c.Controls.Add(File);
r.Cells.Add(c);
this.MyTable.Rows.Add(r); }问题:点击button后会出现一个新行(包括行中的控件)
      
      但是,再点击button后就不会有任何变化了,而我的目的是想,点击一次,添加一行。我已经知道点击button后会出现页面刷新,而刷新的结果就是控件不保留那么,该怎么解决呢???我搜索了文章,有说到在 page_load里面加,但加什么程序能解决这个问题呢?请教大家给个较详细的答案阿~~~

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3938/3938288.xml?temp=.1344721
      

  2.   

    小弟是初学者,看下这些还是很迷茫
    我新写了这个程序
    private void Button1_Click(object sender, System.EventArgs e)
    {
    if(Page.IsPostBack)
    {
    if(ViewState["IsLoadTextBox"]==null)
    {
    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);
    }
    }

     
    }可是还是无法达到点击一次button添加一行的效果阿!
      

  3.   

    if(Page.IsPostBack)............晕是在Pageload里面加if(!IsPostBack)来阻止新加的控件被清除。看来你对IsPostBack没有理解,看看书吧。照你这么写的话if(Page.IsPostBack)是没有任何作用的,因为你都触发了click了,肯定为真,这个if是一定执行的,一定会执行的if,还要它干什么?
      

  4.   

    楼上的兄弟~
    我是做毕业设计,以前根本没接触过asp.net
    我没时间细看书,
    哎,之前忙考研复式,现在只有2个月的编程时间。。我做的是电子邮件群发系统
    基本上所有东西对我来说都是陌生面孔。。
      

  5.   

    ………………………………
    不是所有的地方都需要写if(!IsPostBack)的
      

  6.   

    后台代码是
    private void Page_Load(object sender, System.EventArgs e) { }                  private void Button1_Click(object sender, System.EventArgs e)
    {


    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);

     
    }那我到底该怎么修改达到那个效果呢?
    苦恼啊
    前台就是一个表格和一个button控件
      

  7.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(Page.IsPostBack)
    {
    if(ViewState["IsLoadTextBox"]!=null)
    {
    Add();
    }
    }
    }private void Button1_Click(object sender, System.EventArgs e)
    {
    if(ViewState["IsLoadTextBox"]==null)
    {
    Add();
    ViewState["IsLoadTextBox"]=1; }
    } private void Add()
    {
    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);
    }
    }
      

  8.   

    楼上的兄弟
    谢谢你的热情,
    可是我把你的程序运行了还是无法实现我要得功能,
    前台就是button和ID=Table1的table两个控件!~
      

  9.   

    楼上的兄弟
    谢谢你的热情,
    可是我把你的程序运行了还是无法实现我要得功能,
    你能帮我测试下么?
    这些是后台的
    前台就是只有button和ID=Table1的table两个控件!~
    你能帮我测试下么?
      

  10.   

    我这么试了一下可行。你参考一下吧!比较土
    int creatRow = 1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // ページを初期化するユーザー コードをここに挿入します。
    if(!Page.IsPostBack)
    {

    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);
    ViewState["rowflag"] = creatRow;
    }
    else
    {
    creatRow = Convert.ToInt32(ViewState["rowflag"]);
    creatRow++;
    ViewState["rowflag"]= creatRow;

    for(int i = 0; i < creatRow; i++)
    {
    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);
    }
    }
    }
      

  11.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(Page.IsPostBack)
    {
    if(ViewState["Count"]!=null)
    {
    for(int i=0;i<Convert.ToInt16(ViewState["Count"]);i++)Add();
    }
    }
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    Add();
    ViewState["Count"]=Convert.ToInt16(ViewState["Count"])+1;
    } private void Add()
    {
    TableRow r = new TableRow();
    TableCell c=new TableCell();
    HtmlInputFile t=new HtmlInputFile();
    t.ID="tbfile";
    c.Controls.Add(t);
    r.Cells.Add(c);
    this.Table1.Rows.Add(r);
    }