我试图在gridview中显示4行。如果我在数据库中有2行,我应该显示2个填充行和2个空,如果我在数据库中有4个,显示4个填充行,如果我在数据库中没有,则显示4个空行。这怎么可能?
我使用的是使用c#,Asp.Net的SQl Server 2005。我想使用存储过程使用数据集从数据库获取结果,然后绑定到gridview。
我想知道逻辑,所以我可以尝试为自己编写代码。希望我很清楚,我希望我的要求是可能的?!
谢谢!
答案 0 :(得分:0)
我要采用的方法是使用gridview类的CreateRow()方法,如
gridView1.CreateRow(int rowIndex,
int dataSourceIndex,
DataControlRowType rowType,
DataControlRowState rowState);
因此,使用标准for
循环创建其中的四个,然后将所需的行追加到gridview中的相对行。就像在gridview.Row [i] = SelectedDataBaseRow之类的东西一样,它会是某种东西(如果你正在使用数据表)的
gridView1.SelectRow(i) = dataTable1.Row[i].ItemArray[columnindex].ToString();
希望这有帮助。
答案 1 :(得分:0)
在存储过程中,只需创建某种左或右连接,通过匹配公共列来生成空行。例如,考虑一下:
DECLARE @table AS TABLE
(
one VARCHAR(20) ,
two VARCHAR(30) ,
some_key INT
)
INSERT INTO @table
( one, two, some_key )
VALUES ( 'a', 'b', 1 )
SELECT t.one ,
t.two ,
t.some_key
FROM @table t
RIGHT JOIN ( SELECT 1 AS id
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4 AS id
) x ON x.id = t.some_key
将产生
one two some_key
a b 1
NULL NULL NULL
NULL NULL NULL
NULL NULL NULL
然后,您可以将结果集绑定到gridview。