CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

最后100分了.谁知道为什么我就给谁!

楼主wbj_02(天朝舰队)2004-09-01 13:58:25 在 .NET技术 / ASP.NET 提问

我已经为这个问题想了好多天了.我在页面上放了一个按钮和一个表格,ID是非功过addTable.想通过点击这个按钮添加表格的行,点击一次就添加一行.可是当我点击的时候,表格的行的数目都是只有一行,而新添加的行把旧的行覆盖掉了,请问这是怎么回事?请出示具体的方法.还有我也已经在page_load中写了不起     if(!Page.Ispostback)  
              {    
              }  
  谁能解决,我把这剩下的100分给谁!  
  private   void   add_Click(object   sender,   System.Web.UI.ImageClickEventArgs   e)  
  {  
  TableRowAdd();  
   
  }  
   
  private   void   TableRowAdd()  
  {  
   
  HtmlTableRow   newRow=new   HtmlTableRow();  
   
  HtmlTableCell   cell_1=new   HtmlTableCell();  
  cell_1.InnerText=smallSubjectB.SelectedItem.Text;  
  newRow.Cells.Add(cell_1);  
   
  HtmlTableCell   cell_2=new   HtmlTableCell();  
  cell_2.InnerText=smallerSubject.SelectedItem.Text;  
  newRow.Cells.Add(cell_2);  
   
  HtmlTableCell   cell_3=new   HtmlTableCell();  
  cell_3.InnerText=costsB.Text;  
  newRow.Cells.Add(cell_3);  
   
  admin.Rows.Add(newRow);  
   
   
  } 问题点数:0、回复次数:23Top

1 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 14:10:35 得分 0

是呀,我也是想了好久。。关注中。。。Top

2 楼yichuan1982(亦川——四川新津)回复于 2004-09-01 14:14:41 得分 0

关注中Top

3 楼joedong()回复于 2004-09-01 14:18:09 得分 0

你一次性循环添加就可以,每一次提交   HtmlTable   又都被重新实例化了。  
  这个和PlaceHandler的问题很类似吧Top

4 楼bushido(大饼)回复于 2004-09-01 14:18:50 得分 0

为什么不用js做,  
  你这样做,可以建一个session对象来保存HtmlTable对象Top

5 楼lanhai0859(猪头)回复于 2004-09-01 14:20:16 得分 0

HtmlTableRow   newRow=new   HtmlTableRow();  
  不要放到函数里Top

6 楼xzhy80(算了吧,散了吧)回复于 2004-09-01 14:24:53 得分 0

HtmlTableRow   newRow=new   HtmlTableRow();  
  每次都重新定义了一次  
  Top

7 楼btut2004(养鱼炒股)回复于 2004-09-01 14:30:14 得分 0

不太清楚问什么,不过你可以这样。  
  for   (int   i=0;i<rownum;i++)  
  {  
      admin.Rows.Add(newRow[i]);  
  }  
   
  Top

8 楼wbj_02(天朝舰队)回复于 2004-09-01 14:36:16 得分 0

lanhai0859(猪头)   如果我HtmlTableRow   newRow=new   HtmlTableRow()不放在函数里,那那个函数也就不能用了,那还不是一样.Top

9 楼yichuan1982(亦川——四川新津)回复于 2004-09-01 14:42:42 得分 0

我还真没遇到过这种情况  
  代码上看应该没错Top

10 楼passacaglia(神秘园)回复于 2004-09-01 14:44:09 得分 0

增加一行后,再按增加按钮的时候table保持的状态没有包括开始新增的一行  
  可以用js结合hidden来实现啊Top

11 楼wbj_02(天朝舰队)回复于 2004-09-01 14:44:49 得分 0

会不会是因为放在按钮里面的原因.我看书上例子里面用循环的添加行跟这也差不多,那个例子都可以添加得了.为什么这边就不行了.Top

12 楼jamzh(Show me the money!!!)回复于 2004-09-01 14:46:24 得分 0

用javascript!Top

13 楼wbj_02(天朝舰队)回复于 2004-09-01 14:47:56 得分 0

楼上的可不可以把代码写出来,因为我对JS不太了解.Top

14 楼wbj_02(天朝舰队)回复于 2004-09-01 14:56:29 得分 0

如果要结合JS那应该怎么写呢.Top

15 楼noahart(八卦小子)回复于 2004-09-01 15:58:28 得分 0

<input   type="button"   value="add"   onclick="insert_row()">    
  <table   name='tbl'   id="tbl"   border="1"   width=300>    
  </table>    
  <script>    
  var   i=0    
  function   insert_row(){    
  i++    
  R=tbl.insertRow()    
  C=R.insertCell()    
  C.innerHTML="1"    
  C=R.insertCell()    
  C.innerHTML="2"    
  C=R.insertCell()    
  C.innerHTML="3"    
  }    
  </script>  
  Top

16 楼passacaglia(神秘园)回复于 2004-09-01 16:02:20 得分 0

下面用Session的方法绝对可以!  
   
    if(!Page.IsPostBack)  
  {  
  Session["tbRows"]=new   ArrayList();  
  }  
   
  private   void   TableRowAdd()  
  {  
   
  HtmlTableRow   newRow=new   HtmlTableRow();  
   
  HtmlTableCell   cell_1=new   HtmlTableCell();  
  cell_1.InnerText=smallSubjectB.SelectedItem.Text;  
  newRow.Cells.Add(cell_1);  
   
  HtmlTableCell   cell_2=new   HtmlTableCell();  
  cell_2.InnerText=smallerSubject.SelectedItem.Text;  
  newRow.Cells.Add(cell_2);  
   
  HtmlTableCell   cell_3=new   HtmlTableCell();  
  cell_3.InnerText=costsB.Text;  
  newRow.Cells.Add(cell_3);  
   
  ((ArrayList)Session["tbRows"]).Add(newRow);  
   
  foreach(HtmlTableRow   r   in   (ArrayList)Session["tbRows"])  
  {  
  admin.Rows.Add(r);  
  }  
   
  }  
  Top

17 楼dxphero(火鸟hero)回复于 2004-09-01 16:12:36 得分 0

你这个画的是一行  
  只要你一点击按钮就会画新的一行你虽然写的是增加一行但是最终画出来的还是一行,  
  如果要解决你这个问题你就要利用for循环  
  每次添加一行就让他画一次表格  
  DataTable   table   =ds.Tables["table"].Rows;  
  for(int   i=0;i<ds.Tables["table"].Rows.count;i++)  
  {  
  HtmlTableRow   newRow=new   HtmlTableRow();  
   
  HtmlTableCell   cell_1=new   HtmlTableCell();  
  cell_1.InnerText=smallSubjectB.SelectedItem.Text;  
  newRow.Cells.Add(cell_1);  
   
  HtmlTableCell   cell_2=new   HtmlTableCell();  
  cell_2.InnerText=smallerSubject.SelectedItem.Text;  
  newRow.Cells.Add(cell_2);  
   
  HtmlTableCell   cell_3=new   HtmlTableCell();  
  cell_3.InnerText=costsB.Text;  
  newRow.Cells.Add(cell_3);  
   
  }  
  table.Control.Add(newRow);Top

18 楼simonllf(simon)回复于 2004-09-01 16:41:24 得分 0

MARKTop

19 楼danlog(龙帝)回复于 2004-09-01 17:06:06 得分 0

帮你顶!Top

20 楼tianwenjie()回复于 2004-09-01 18:38:49 得分 0

只好用javascript   实现了,八卦小子的方法就可以  
  Top

21 楼huguojunsy(Myth)回复于 2004-09-02 08:42:54 得分 0

把你那个admin申明为那个页面static变量。因为如果不这样,每次点按钮回调后admin起始都初始化了一次。Top

22 楼Seeko0(阿 枫(终点又回到起点,到现在我才发现))回复于 2004-09-02 11:31:15 得分 0

我的方法是每次创建新行的时候,先重新创建以前创建的行Top

23 楼zjcsdnjp()回复于 2004-09-02 13:54:58 得分 0

代码没错,但要看你的admin放在什么位置了,估计可能被多次初始化Top

相关问题

  • 知道为什么吗?
  • 我想知道为什么?
  • 请求帮助:关机到最后时音响会“就~”一声响,不知道为什么?
  • 代码中memset出的问题 不知道为什么 大家给看看
  • 一个小问题,我知道结果但不知道为什么?欢迎大家来给解释一下.
  • 有谁知道这是为什么?
  • 小问题,谁知道为什么
  • 我终于知道了。为什么~~~~~~
  • 谁知道这是为什么
  • 不知道为什么的错误?

关键词

  • cell
  • 表格
  • htmltablecell
  • htmltablerow
  • newrow
  • 一行
  • tablerowadd
  • tbrows
  • innertext
  • 添加

得分解答快速导航

  • 帖主:wbj_02

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo