在邦定事件中加上if(!postback)行不?

解决方案 »

  1.   

    每次按button时我就调用如下函数:
    private void AddRow(ref HtmlTable TempTable)
    {
      int j=TempTable.Rows.Count;
     try
     {
      HtmlTableRow r = new HtmlTableRow();
      r.Visible=true;
      HtmlTableCell c1 = new HtmlTableCell("TD"); Label lbl=new Label();
    lbl.Text=j.ToString();
    lbl.Width=48;
    c1.Controls.Add(lbl);
    r.Cells.Add(c1); HtmlTableCell c2 = new HtmlTableCell("TD");
    TextBox tbox1=new TextBox();
    tbox1.Width=82;
    c2.Controls.Add(tbox1);
             r.Cells.Add(c2);
    HtmlTableCell c3 = new HtmlTableCell("TD");
    TextBox tbox2=new TextBox();
             tbox2.Width=120;
    c3.Controls.Add(tbox2);
    r.Cells.Add(c3);
    HtmlTableCell c4 = new HtmlTableCell("TD");
    TextBox tbox3=new TextBox();
    tbox3.Width=145;
    c4.Controls.Add(tbox3);
    r.Cells.Add(c4); TempTable.Rows.Add(r);
    j=TempTable.Rows.Count;
      }
      catch(Exception e)
      {
    e.ToString();
      }
    }
      

  2.   

    引: web页面刷新后,原来动态添加的控件和状态都不会自动保存,你必须的把原来创建的控件和状态都保存,在Page_Load里读取上次的保存值再一次添加,具体实现方法就得你自己根据需要来完成了
      

  3.   

    问题是我按按钮时在Page_Load里已经取不到上次添加的值了!在什么时候才能取得我动态添加的行中用户填入的值呢?谢谢!
      

  4.   

    你需要用循环语句,查询数据库中的所有纪录
    while(Reader.Read())
      

  5.   


    用viewstate保存上一次的呀
      

  6.   

    在什么时候保存呢?下一次Page_Load时值已经丢了!
      

  7.   

    服务器table控件在每次用循环add以后,数据都会存在table实例变量中,除非
    你这样调用table1.Rows.Clear();每次刷新页面的时候都会自动加载
      

  8.   

    我用了服务器控件的table还是不行啊,一样的结果!动态增加的行下次刷新时仍然会丢失啊!怎么办?
      

  9.   

    <form id="manager" runat="server">
    有没有设成runat=server!?
      

  10.   

    你上面的代码,中的htmltablerow,htmltablecell,htmltable
    全改成TableRow,TableCell,Table这是asp.net服务器控件
    我用它做过n次了,也没出现你说的问题
    不要用html控件
      

  11.   

    to tlping(crazyboy)
    写段sample出来,如果可以,我看n次
      

  12.   

    这个方法是我写的一个分页的Table
    在你的asp.net设计页面中,拖出一个table控件
    有不明白的地方清说
    private void btnChange_Click(object sender, System.EventArgs e)
    {
    try
    {
    LabelErr.Text="";
    int m=int.Parse(txtChangecnt.Text);//得到要转向的页码
    //DataSet dsSalesList=(DataSet)Session["dsSalesList"];
    DataSet dsSalesList=(DataSet)Cache.Get("dsSalesList");//得到存储在缓存中的数据集
    int rowscnt=dsSalesList.Tables["SalesList"].Rows.Count;//总行数
    int cellscnt=dsSalesList.Tables["SalesList"].Columns.Count; if(m<1||m>totalpage)
    {
    LabelErr.Text="请输入整数1-"+totalpage.ToString();return;
    }
    LabelcurPage.Text="当前第"+m.ToString()+"页"; int rcnt=Math.Min(apagesize*m,rowscnt);
    //if(rcnt!=rowscnt||rowscnt==apagesize*m)//如果较小者为
    // rcnt=apagesize;
    if(m<totalpage||rowscnt==apagesize*m)//m是要转向的页码,从1开始
    rcnt=apagesize;//满页显示当前页
    else 
    rcnt=rowscnt%apagesize;//显示不足以页的行数
    Table1.Rows.Clear();//清除table中以前的数据
    this.addheader(); for(int i=0;i<rcnt;i++)
    {
    TableRow r=new TableRow();
    for(int j=0;j<cellscnt+1;j++)//这里要多加一列,所以为cellscnt+1
    {
    if(j==cellscnt)//这一列为处理拍卖信息而添加,只有到最后一列的时候才会执行
    {
    TableCell c=new TableCell();
    c.HorizontalAlign=HorizontalAlign.Center;
    //LinkButton lbt=new LinkButton();
    //lbt.Text="拍卖";
    HyperLink hLink=new HyperLink();
    hLink.Text="拍卖";
    hLink.NavigateUrl="sale_a_list.aspx?id="+dsSalesList.Tables["SalesList"].Rows[i+(m-1)*apagesize][0].ToString();
    c.Controls.Add(hLink);
    r.Cells.Add(c);
    }
    else
    {
    TableCell c=new TableCell();
    string strShow=dsSalesList.Tables["SalesList"].Rows[i+(m-1)*apagesize][j].ToString();
    c.Controls.Add(new LiteralControl(strShow));
    r.Cells.Add(c);
    }

    }
    Table1.Rows.Add(r);
    }
    } catch(OverflowException ofe){LabelErr.Text="数据溢出!"+ofe.Message;}
    catch(FormatException fe){LabelErr.Text="输入必须为数字"+fe.Message;}
    catch(SqlException ff){LabelErr.Text="数据库连接失败!"+ff.Message;}
    catch(Exception ee){LabelErr.Text=ee.Message;}

    }
      

  13.   

    private void btnChange_Click(object sender, System.EventArgs e)
    {
       try
          {
    LabelErr.Text="";
    int m=int.Parse(txtChangecnt.Text);//得到要转向的页码
    DataSet dsSalesList=(DataSet)Cache.Get("dsSalesList");//得到存储在缓存中的数据集
    int rowscnt=dsSalesList.Tables["SalesList"].Rows.Count;//总行数
            int cellscnt=dsSalesList.Tables["SalesList"].Columns.Count; if(m<1||m>totalpage)
    {
    LabelErr.Text="请输入整数1-"+totalpage.ToString();return;
    }
    LabelcurPage.Text="当前第"+m.ToString()+"页"; int rcnt=Math.Min(apagesize*m,rowscnt);
    if(m<totalpage||rowscnt==apagesize*m)//m是要转向的页码,从1开始
    rcnt=apagesize;//满页显示当前页
    else 
    rcnt=rowscnt%apagesize;//显示不足以页的行数
           Table1.Rows.Clear();//清除table中以前的数据
            this.addheader();//这是另外一个自定义的方法,不用管 for(int i=0;i<rcnt;i++)
    {
    TableRow r=new TableRow();
          for(int j=0;j<cellscnt+1;j++)//这里要多加一列,所以为cellscnt+1
    {
    if(j==cellscnt)//这一列为处理拍卖信息而添加,只有到最后一列的时候才会执行
    {
    TableCell c=new TableCell();
    c.HorizontalAlign=HorizontalAlign.Center;
    //LinkButton lbt=new LinkButton();
    //lbt.Text="拍卖";
    HyperLink hLink=new HyperLink();
    hLink.Text="拍卖";
    hLink.NavigateUrl="sale_a_list.aspx?id="+dsSalesList.Tables["SalesList"].Rows[i+(m-1)*apagesize][0].ToString();
    c.Controls.Add(hLink);
    r.Cells.Add(c);
    }
    else
    {
    TableCell c=new TableCell();
    string strShow=dsSalesList.Tables["SalesList"].Rows[i+(m-1)*apagesize][j].ToString();
    c.Controls.Add(new LiteralControl(strShow));
    r.Cells.Add(c);
    }

    }
    Table1.Rows.Add(r);
    }
       } catch(OverflowException ofe){LabelErr.Text="数据溢出!"+ofe.Message;}
    catch(FormatException fe){LabelErr.Text="输入必须为数字"+fe.Message;}
    catch(SqlException ff){LabelErr.Text="数据库连接失败!"+ff.Message;}
    catch(Exception ee){LabelErr.Text=ee.Message;}

    }
      

  14.   


    DataTable myTable;
    //这里自己构造table的列
        
        // Once a table has been created, use the NewRow to create a DataRow.
        DataRow myRow;
        myRow = myTable.NewRow();
        // Then add the new row to the collection.
        myRow["fName"] = textBox1.Text.ToString();
        myRow["lName"] = "TextBox2.Text.ToString();
        myTable.Rows.Add(myRow);DataView dvtable=myTable.DefaultView;到这里还要我说吗?
      

  15.   

    我前几天刚好碰到了这样的问题,是由于表格没有被保存,可以用viewstate,现在没分了,帮你搞定,有问题,给我发信息。要源码也行,一定要给分哟.
    sub page_load
        if not ispostback  then
            '建表
            viewstate("table")=tbname'tbname是你建表的名字
        else
            tbname=viewstate("table")
        end if
    end subsub button_click(s as object,e as eventargs)
        tbrow=tbname.newrow
        tbrow.item("字段")="你要的值"
        tbname.rows.add(tbrow)'tbrow是你定义的行   '最重要的一步
        viewstate("table")=tbname
    end sub