怎么实现在ASP.NET中制作表格,并将数据库中数据定位到特定的单元格中,谢谢了 20

现须在ASP.NET的网页中显示报表,报表的格式如下(红框里的是固定不变的,绿框的数据从数据库调用)。表格要求:表格样式不变,显示数据库里的数据。之前尝试用repeate... 现须在ASP.NET的网页中显示报表,报表的格式如下(红框里的是固定不变的,绿框的数据从数据库调用)。表格要求:表格样式不变,显示数据库里的数据。
之前尝试用repeater、Gridview控件但都不能将数据定位到特定单元格上。问各位大神,怎么实现这个功能。在下感激不尽
展开
 我来答
匿名用户
2015-01-18
展开全部

问你几个问题:

(1) 你是不是初学者...或者说有没有接触过 动态添加数据方便的 经验

(2)如果不考虑后台,你能不能用html的table布局写一张 上面的 报表,就是数据是死的,你用html table设计成你上面的样子。(这个是html的基础,你的表也不复杂)

(3)你从数据库获取的数据集的DataSet,是不是每一行都对应的,比如说0:00-0:2:00 这里是不是有一行对应的数据,2:00-4:00也有一行对应的?以此类推,我观察你上面发现有8行数据,但是要求有12行,如果你后台数据集值返回8行的话,你可以在你数据库表加一个字段就是标志每条数据代表的时间,比如0代表0:00-2:00 ,1代表2:00-4:00,然后添加一张数字表,这个数字表只有一个字段,然后就添加数字0,1,2,3,4,....,11,就是12个数据,然后你拿数字表左连接你那个数据表,那么是不是数据表没有的字段会在连接后右边全部是NULL?这样,你C#判断的时候,判断那一行的ID是不是ID就知道这个有没有数据了


如果上面的三个问题,你都满足的话,这非常容易...asp.net里面有个Literal控件,这个控件的作用很简单,就是把Literal.Text原原本本放到前台,包括Html标签...跟平常的Lable控件差不多,只是Lbale到了前台被解释成了span标签,而Literal是原封不动地显示。


怎么做呢,你不是要一个表头么,

假设  <tr><td>时间</td><td>开标时间</td><td>停表时间</td></tr> 这个是表头(我简化了,你自己理解)

把我就先new一个StringBuilder  

StringBuilder sb = new StringBuilder();//这个你应该懂吧

然后我往sb添加字符串

sb.Append("<tr><td>时间</td><td>开标时间</td><td>停表时间</td></tr>")//现在是不是把表头放到sb里面了。
//下面就开始遍历dataset了
int i=0;
foreach(DataRow dr in ds.Tables[0].Rows)
{
   string tmp="<tr><td>"+i.ToString()+":00-"+((i+1)*2).ToString()+"</td><td>"+dr[""].ToString()+"....</tr>"
   //看的明白吧,假如i是0,那这就是<tr><td>0:00-2:00</td>....这是你上面第一行数据,数据跟列数,你自己对应,如此循环
   i++;
   sb.Append(tmp);//把数据追加到sb里面
}

然后全部弄玩了,是不是一个前台的html table就被放到sb里面了

最后

Literal1.Text=sb.ToString();//把sb转成字符串放到Literal里面,这样,一个表格就显示到前台去了

如果你看不太明白,可能基础不过关,那就尝试用别人的控件吧

百度网友60a5940
2015-01-18 · TA获得超过218个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:174万
展开全部
用报表啊,把报表样式弄好,读数据填充不就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优奈我知识库
2015-01-18 · 程序员干货知识库分享解决方案技术实现内容
优奈我知识库
采纳数:454 获赞数:371

向TA提问 私信TA
展开全部
试试自带的水晶报表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式