// 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;到这里还要我说吗?
我前几天刚好碰到了这样的问题,是由于表格没有被保存,可以用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
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();
}
}
while(Reader.Read())
用viewstate保存上一次的呀
你这样调用table1.Rows.Clear();每次刷新页面的时候都会自动加载
有没有设成runat=server!?
全改成TableRow,TableCell,Table这是asp.net服务器控件
我用它做过n次了,也没出现你说的问题
不要用html控件
写段sample出来,如果可以,我看n次
在你的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;}
}
{
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;}
}
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;到这里还要我说吗?
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