首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一个关于datagrid超难的有关问题,帮忙来解决一下?

2012-02-23 
一个关于datagrid超难的问题,请教高手帮忙来解决一下??数据库中的表结构是:id,state,reason1已审核正确1已

一个关于datagrid超难的问题,请教高手帮忙来解决一下??
数据库中的表结构是:
id   ,state,     reason
1         已审核       正确
1         已审核       正确
1         已审核       正确
2         未审核       错误
2         未审核       错误
3         未审核       不正确
现在在datagrid中要显示成这样

编号     审核状态     原因1     原因2     原因3  
1           已审核         正确       正确       正确
2           未审核         错误       错误       不正确

这样显示
还要在     审核状态     原因1     原因2     原因3   这四列上加一个表头为内勤审核,
本来这个显示的界面就用了存储过程根据不同的条件查询,现在老板还要这样显示,
请那位高手帮忙解决一下拉!
问题解决立即结帖!!!!!!

[解决办法]
晕,标头不是可以
[解决办法]
我来学习。!
[解决办法]
该什么绑定还是怎么绑定,多表取数据是一样的,添加绑定列
<asp:BoundColumn DataField= "id " HeaderText= "编号 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "state " HeaderText= "状态 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "reason " HeaderText= "审核状态 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "* " HeaderText= "原因1 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "* " HeaderText= "原因2 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "* " HeaderText= "原因3 "> </asp:BoundColumn>

[解决办法]
up
[解决办法]
自己 封个对象
class check()
{
id;
state;
reason1;
reason2;
reason3;
}


datagrid的数据原绑 list
list是由 check()对象组成
<asp:BoundColumn DataField= "id " HeaderText= "编号 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "state " HeaderText= "审核状态 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "reason1 " HeaderText= "原因1 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "reason2 " HeaderText= "原因2 "> </asp:BoundColumn>
<asp:BoundColumn DataField= "reason3 " HeaderText= "原因3 "> </asp:BoundColumn>



自己在底层 把数据重数据库取出来后 填入相应的check 对象里面
[解决办法]
使用repeater

使用SQL实现交叉表
如果使用的是SQL2005交叉表的实现更简单,查查资料吧。
[解决办法]
用datagrid的模板列就可以搞定啦。
[解决办法]
你先把数据从库里取出来放在一个dataset里
创建一个datatable
datatable创建列编号 、状态、原因1、原因2、原因3
循环dataset处理把数据插入datatable里
[解决办法]
然后再将datatable绑定到datagrid上
[解决办法]
create view biao
as
select a.reason as 原因3 from 表 a,表 b where a.id=b.id and a.state=b.state and a.reason=b.reason


[解决办法]
Try:

create table #T
(id varchar(2) , n1 varchar(2) , n2 varchar(2))

Insert into #t
select '01 ', 'x ', 'x ' Union
select '02 ', 'x ', 'y ' Union
select '03 ', 'x ', 'z ' Union
select '04 ', 'y ', 'x ' Union
select '05 ', 'y ', 'y ' Union
select '06 ', 'y ', 'z ' Union
select '07 ', 'z ', 'x ' Union
select '08 ', 'z ', 'y ' Union
select '09 ', 'z ', 'z '

Select * from #t

declare @sql1 varchar(8000)
declare @sql2 varchar(8000)
declare @sql3 varchar(8000)

Select @sql1 = ' ' , @sql2 = ' ' , @sql3 = ' '

Select @sql1 = @sql1 + ', max(case when id = ' ' ' + id + ' ' ' then id else ' ' ' ' end) as ' ' '+ 'col ' + id + ' ' ' '
from #t
group by id
Select @sql2 = @sql2 + ', max(case when id = ' ' ' + id + ' ' ' then n1 else ' ' ' ' end) '
from #t
group by id
Select @sql3 = @sql3 + ', max(case when id = ' ' ' + id + ' ' ' then n2 else ' ' ' ' end) '
from #t
group by id

Select @sql1 = stuff(@sql1 , 1 , 1, ' ')
Select @sql2 = stuff(@sql2 , 1 , 1, ' ')
Select @sql3 = stuff(@sql3 , 1 , 1, ' ')


Select @sql1 = ' Select ' + @sql1 + ' from #t '
Select @sql2 = ' Select ' + @sql2 + ' from #t '
Select @sql3 = ' Select ' + @sql3 + ' from #t '
Exec(@sql1 + ' union all ' + @sql2 + ' union all ' + @sql3)

drop table #

热点排行