asp.net动态生成GridView表头

jiaxinxuebing880 2009-11-22 02:18:07
在gridView中表头是从数据库中查出来的在表头下方的数据也是从数据库中查出来的,要一一对应。哪位知道应该怎么做啊?

原材料耗用量
导体 导体屏蔽 绝缘 填充
型号 规格 数量 单价 金额 数量 单价 金额 数量 单价 金额 数量 单价 金额 材料成本
SDF 120*13 12 10 120 10 22 220 100 55 5500 100 8 800 6640
...全文
1118 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑哨 2012-05-06
  • 打赏
  • 举报
回复
同样的问题,学习
hlwang4531 2011-08-15
  • 打赏
  • 举报
回复
这个超过四行的表头怎么做啊!参数要怎么写?
suny_linjia 2011-04-21
  • 打赏
  • 举报
回复
你看一下这个http://hi.baidu.com/ligq/blog/item/4e3ed9540b7f975bd1090635.html或许可以帮你 简单的绑定表头
aXinNo1 2010-11-25
  • 打赏
  • 举报
回复
我也遇到这样的问题,咋整呢,这个问题还没有解决啊!
jiaxinxuebing880 2010-03-05
  • 打赏
  • 举报
回复
哎!难道这个功能不能实现吗?
hailiu123 2009-12-08
  • 打赏
  • 举报
回复
顶个
jidianxueyuan 2009-12-08
  • 打赏
  • 举报
回复
先用存储过程
然后前台在处理多行的表头

rootsu29 2009-12-08
  • 打赏
  • 举报
回复
遇到类似问题,期待高人指点
handsomemank 2009-12-04
  • 打赏
  • 举报
回复
yyyyyyrr 2009-11-28
  • 打赏
  • 举报
回复
学习一下。
jiaxinxuebing880 2009-11-27
  • 打赏
  • 举报
回复
借此贴问大家另一个问题,问题如下:

有两张表,我想通过从表a中查出来的数据来查询表b中的数据,但是表a返回的结果却有很多条,我想用存储过程做应该怎么循环查询呢?麻烦大家写详细点!
例如:

a表: id ,name
b表: b_id

我取得: select id from a where id is not null 不止一条记录

如何循环查询 :b表的 b_id = id 的纪录
jiaxinxuebing880 2009-11-25
  • 打赏
  • 举报
回复
能提供一个Repeater的例子吗?循环读取数据的!
xiaoxin4321 2009-11-24
  • 打赏
  • 举报
回复
up~
jiaxinxuebing880 2009-11-24
  • 打赏
  • 举报
回复
不是!表头永远都是三行,只有以下信息(产品所用的原材料)不是固定的,是从数据库中查出来动态生成的,
导体 导体屏蔽 绝缘 填充
数量 单价 金额 数量 单价 金额 数量 单价 金额 数量 单价 金额


例如:数据库中只有 导体 一种原材料的话就只显示 导体
数量 单价 金额


如果数据库中有导体和导体屏蔽两种原材料的话就显示 导体 导体屏蔽
数量 单价 金额 数量 单价 金额
..
..
..
..
而且表格中的数据还要一一对应!





jiaxinxuebing880 2009-11-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 huguosheng_89412 的回复:]
这种格式建议用repeater,
[/Quote]
您能提供一个Repeater的例子吗?循环读取!
朕赐你肥皂 2009-11-24
  • 打赏
  • 举报
回复
6楼的写法是完全可以实现的~
huguosheng_89412 2009-11-24
  • 打赏
  • 举报
回复
这种格式建议用repeater,
jiaxinxuebing880 2009-11-24
  • 打赏
  • 举报
回复
谢谢支持!
C5662601 2009-11-23
  • 打赏
  • 举报
回复
学习
namhyuk 2009-11-23
  • 打赏
  • 举报
回复
说实话,我本人特别讨厌这个实现。不过还是贴出来吧。
效果



protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = GetTable();
GridView1.DataBind();
}
}

private DataTable GetTable()
{
DataTable dt = new DataTable();

DataColumn dc = new DataColumn();
dc.ColumnName = "ID";
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;

dt.Columns.Add(dc);
dt.PrimaryKey = new DataColumn[] { dc };

dt.Columns.Add("FirstName", typeof(string));
dt.Columns.Add("LastName", typeof(string));

dt.Columns.Add("City", typeof(string));
dt.Columns.Add("Street", typeof(string));

DataRow dr = dt.NewRow();
dr["FirstName"] = "元甲";
dr["LastName"] = "霍";
dr["City"] = "上海";
dr["Street"] = "南京路325号";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["FirstName"] = "真";
dr["LastName"] = "陈";
dr["City"] = "佛山";
dr["Street"] = "东山路15号";
dt.Rows.Add(dr);

return dt;

}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
// 第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("rowspan", "3"); //跨三行。
tcHeader[0].Text = "人员ID";

tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("colspan", "4"); //跨四列
tcHeader[1].Text = "基本资料</th></tr><tr>"; // 作弊

// 第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Attributes.Add("colspan", "2");
tcHeader[2].Text = "姓名";

tcHeader.Add(new TableHeaderCell());
tcHeader[3].Attributes.Add("colspan", "2");
tcHeader[3].Text = "联系方式</th></tr><tr>"; //作弊

// 第三行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Text = "名";

tcHeader.Add(new TableHeaderCell());
tcHeader[5].Text = "姓";

tcHeader.Add(new TableHeaderCell());
tcHeader[6].Text = "城市";

tcHeader.Add(new TableHeaderCell());
tcHeader[7].Text = "街道";



}
}
加载更多回复(6)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧