asp.net Table问题

问题描述

我使用asp.net的web控件Table,在后台动态增加行,可我每次添加都是把以前的行覆盖了,不能在后面直接添加,请问是什么原因呢?该如何解决?

解决方案

解决方案二:
顶起来,很舒服!
解决方案三:
TableRowtr=newTableRow();//......table.Rows.Add(tr);
解决方案四:
引用2楼dalmeeme的回复:

TableRowtr=newTableRow();//......table.Rows.Add(tr);

+1
解决方案五:
楼上的,我把我的代码贴出来你看看吧!///<summary>///加载Table(根据参数加载行数)///</summary>///<paramname="iRow">需要加载的行数</param>privatevoidInitTable(intiRow,intiTable){for(inti=0;i<iRow;i++){tr=newTableRow();td=newTableCell();td.ID="ColId"+i+1;//设置第一个单元格的IDtd.Text=(iTable+i).ToString();//设置第一个单元格文本td.Width=Unit.Pixel(60);tr.Cells.Add(td);//设置第二个单元格的ID和单元格文本提交时间td=newTableCell();td.ID="ColDate"+i+1;td.Text=DateTime.Now.ToString("yyyy-MM-dd");td.Width=Unit.Point(120);tr.Cells.Add(td);//设置第三个单元格的ID和单元格文本提交人td=newTableCell();td.ID="ColAuthor"+i+1;TextBoxtxtAuthor=newTextBox();txtAuthor.Width=Unit.Pixel(120);txtAuthor.ID="txtAuthor"+i.ToString();td.Controls.Add(txtAuthor);td.Width=Unit.Point(120);tr.Cells.Add(td);//设置第四个单元格的ID和单元格文本金额td=newTableCell();td.ID="ColMoney"+i+1;TextBoxtxtMoney=newTextBox();txtMoney.ID="txtMoney"+i.ToString();txtMoney.Width=Unit.Pixel(100);td.Controls.Add(txtMoney);td.Width=Unit.Point(100);tr.Cells.Add(td);//设置第五个单元格的ID和单元格文本审核依据td=newTableCell();td.ID="ColPayment"+i+1;TextBoxtxtPayment=newTextBox();txtPayment.ID="txtPayment"+i.ToString();txtPayment.Width=Unit.Pixel(200);td.Controls.Add(txtPayment);td.Width=Unit.Point(200);tr.Cells.Add(td);Table1.Rows.Add(tr);}iRow=Table1.Rows.Count;}

解决方案六:
我是在页面加载时先增加4行,让后点击【新增】按钮再增加一行,但是增加了新行就把之前的几行全覆盖了,只剩最新的一行!
解决方案七:
你可以把开始的表格存入ViewState中点击新增时取出ViewState赋给新的表格实行添加行
解决方案八:
引用6楼gj462375513的回复:

你可以把开始的表格存入ViewState中点击新增时取出ViewState赋给新的表格实行添加行

请问应该怎么写呢?是这样写么:ViewState["table"]=Table1;

我这样写报错了啊,如下:程序集“System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的类型“System.Web.UI.WebControls.Table”未标记为可序列化。
解决方案九:
tr、td不能用成员变量,要用局部变量。
解决方案十:

解决方案十一:
大家好,我还是那个问题Table添加新行,我把所有的代码都贴出来protectedvoidPage_Load(objectsender,EventArgse){intiTable=Table1.Rows.Count;if(!IsPostBack){ViewState["iRow"]=Table1.Rows.Count;}else{//InitTable(4,iTable);//ViewState["iRow"]=Table1.Rows.Count;ViewState["iRow"]=Table1.Rows.Count;}}///<summary>///加载Table(根据参数加载行数)///</summary>///<paramname="iRow">需要加载的行数</param>privatevoidInitTable(intiRow,intiTable){TableRowtr;TableCelltd;for(inti=0;i<iRow;i++){tr=newTableRow();td=newTableCell();td.ID="ColId"+i+1;//设置第一个单元格的IDtd.Text=(iTable+i).ToString();//设置第一个单元格文本td.Width=Unit.Pixel(60);tr.Cells.Add(td);//设置第二个单元格的ID和单元格文本提交时间td=newTableCell();td.ID="ColDate"+i+1;td.Text=DateTime.Now.ToString("yyyy-MM-dd");td.Width=Unit.Point(120);tr.Cells.Add(td);//设置第三个单元格的ID和单元格文本提交人td=newTableCell();td.ID="ColAuthor"+i+1;TextBoxtxtAuthor=newTextBox();txtAuthor.Width=Unit.Pixel(120);txtAuthor.ID="txtAuthor"+i.ToString();td.Controls.Add(txtAuthor);td.Width=Unit.Point(120);tr.Cells.Add(td);//设置第四个单元格的ID和单元格文本金额td=newTableCell();td.ID="ColMoney"+i+1;TextBoxtxtMoney=newTextBox();txtMoney.ID="txtMoney"+i.ToString();txtMoney.Width=Unit.Pixel(100);td.Controls.Add(txtMoney);td.Width=Unit.Point(100);tr.Cells.Add(td);//设置第五个单元格的ID和单元格文本审核依据td=newTableCell();td.ID="ColPayment"+i+1;TextBoxtxtPayment=newTextBox();txtPayment.ID="txtPayment"+i.ToString();txtPayment.Width=Unit.Pixel(200);td.Controls.Add(txtPayment);td.Width=Unit.Point(200);tr.Cells.Add(td);Table1.Rows.Add(tr);}iRow=Table1.Rows.Count;}///<summary>//////</summary>///<paramname="sender"></param>///<paramname="e"></param>protectedvoidbtnAdd_Click(objectsender,EventArgse){intirow=Convert.ToInt32(ViewState["iRow"]);irow=Table1.Rows.Count;InitTable(1,irow);}

我在button的事件里执行添加新行,但是只能添加一次,我在调试的时候发现,第一次完成了,但是table.rows.count的值还是没变,所以导致第二次添加不成功。请问这是什么原因呢?为什么table1.rows.count的值没有改变呢?

时间: 2024-12-22 02:59:25

asp.net Table问题的相关文章

asp中将table表中的数据成功导成excel做法

excel|数据 我最近刚作了一个项目,该项目的要求是将asp页面中丛书据库中提取的数据直接保存成为excel形式,刚开始我的为此想了好就才最终做了出来,在此和大家共同分享!!---------------------------------------脚本如下:<% dim Rs_code,Sql_code,Rs_date,Sql_date If Request("Op")="Show" Then sborder="0" sbg1=&qu

ASP.NET Table 表格控件的使用方法_基础应用

一个Table对象包含多个行TableRow,每一行又包含TableCell,TableCell中可以包含其他的HTML或者服务器控件作为Web服务器控件. 一.Table中的属性 Table对象: BackImageUrl 表格的背景图像的URL Caption 表格标题 CaptionAlign 标题文本对齐方式 CellPadding Table单元格内容和单元格边框之间的空间量(单位:像素) CellSpacing 相邻单元格之间的空间量 Rows Table控件中行的集合 TableR

asp将table生成excel文件(xls)_应用技巧

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% if request("action")=1 then Response.ContentType="application/ms-excel" Response.AddHeader "content-disposition","attachment;filename=www

asp将table生成excel文件(xls)

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% if request("action")=1 then Response.ContentType="application/ms-excel" Response.AddHeader "content-disposition","attachment;filename=www

asp.net-ASP.NET动态添加节点 实现每次单击动态生table中的行列

问题描述 ASP.NET动态添加节点 实现每次单击动态生table中的行列 点击这个添加更多动态复制上面的div中的table里面的控件 后台可以获取到每个table中标签的id 或者直接可以获取 多个table中控件上的数据 我是asp的新手不清楚这个 这个服务器的控件的js代码怎么写 或者可以直接在控件的添加更多事件里面实现 <div id="divtable"> <table class="add_table" id="table&

Asp.Net实现无限分类生成表格的方法(后台自定义输出table)_实用技巧

本文实例讲述了Asp.Net实现无限分类生成表格的方法.分享给大家供大家参考,具体如下: 数据结构 monitor_group monitor_grp_id      monitor_grp_name     parent_id       level               childCount       orderby [int,自动递增]           [nvarchar,not null]      [int,not null]  [int,not null]   [int,

ASP.NET 中 table的问题,在线求解答。

问题描述 我有一个页面,像这样<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="temp.aspx.cs"Inherits="Lib.Web.CompetionAndObservingArea.temp"%><linkhref="/css/style.css"rel="stylesheet"type="

ASP.NET中动态Table 显示问题

问题描述 ds=cS.DeviceDes(Tid);if(ds.Tables.Count<=0||ds.Tables[0].Rows.Count<=0){return;}intk=ds.Tables[0].Columns.Count-5;foreach(DataRowdrowinds.Tables[0].Rows){Panelpl=newPanel();pl.ID="pl"+drow[1].ToString();pl.ToolTip="a"+drow[k

ASP.net文章管理系统:系统设计与编码(下)

asp.net|编码|设计 ASP.net文章管理系统:系统设计与编码. 相关文章:ASP.net文章管理系统:系统设计与编码(上)     14.3.4 ArticlesList.aspx的设计与编码     ArticlesList.aspx提供了两个功能:     (1)根据传入参数列出该类别的文章列表:     (2)根据传入参赛检索出符合条件的文章列表.     这两个功能的实现是有后台逻辑程序根据传入的参数类型判断,然后为用户提供不同的服务.     ArticlesList.asp