如何通过gridview实现 把两列内容和成一列显示

如何通过gridview实现 把两列内容和成一列显示

我现在需要实现这个功能:
1,分析列里面的数字的奇偶
2,在奇数后面加j
3,在偶数后面加o
4,最终要在gridview里显示。

还有个需求,在用户表里面有姓名 和性别两列
如果通过gridview把两列合成一列显示?
二楼的兄弟,第二种方法,我看了。如果我要是通过别名的话,那我在gridview里显示的时候。放在哪列下面呢。是姓名列。还是性别列呢?

二楼兄弟。第二个方法没问题 ,成功了。但是第一个不对啊。代码下面画了红线了。语句好像有问题

不是要合成一列么?单独添加一列,名字自己随便起好了。当然,你不能再使用GridView的自动生成列,需要把AutoGenerateColumn设为False.
——————————
都用模板列实现:
第一个,
<asp:Label Text='<%# Eval("字段名") +(Conver.ToInt32(Eval("字段名"))%2 == 0?"o":"j") %>'" runat="server" ></asp:Label>

第二个,
把你的SelectCommand改成:
Select 姓名+性别 AS 姓名性别 ……

GridView的相应模板列:
<asp:Label Text='<%# Eval("姓名性别")%>'" runat="server" ></asp:Label>
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-23
第一个问题:
这个问题要在SQL语句里面写的话效率就不高了!
先把数据正常查询出来放入一个Datatable里面!然后循环取要判断奇偶这列的值,怎么判断知道吧?(除二)!如果是奇数的话把该行的该列值改为当前值+j,如果是偶数的话把该行该列值改为当前值+o;注意一定在查询的SQL语句里面要把这列值convert成varchar就像下面那样!记得as一下列名!然后在gridview里面绑定对应的列!搞定!我大概想了想!未测试!
第二个问题:
select convert(varchar(50),年龄)+'|'+convert(varchar(50),性别) AS '年龄和性别' from tableName

不明白欢迎来信息!好运!
第2个回答  推荐于2016-05-24
通过GridViewRow的Rows方法合并多列即可。
举例:
protected void GridView1_PreRender(object sender, EventArgs e)
{
GridDecorator.MergeRows(GridView1);

}
public class GridDecorator
{
public static void MergeRows(GridView GridView1)
{
for (int rowIndex = GridView1.Rows.Count -2; rowIndex >= 0; rowIndex--)
{
GridViewRow row = GridView1.Rows[rowIndex];
GridViewRow previousRow = GridView1.Rows[rowIndex+1];
for (int i = 0; i < row.Cells.Count; i++)
{
if (row.Cells[i].Text == previousRow.Cells[i].Text)
{
row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 1 ? 2 : previousRow.Cells[i].RowSpan+1;
previousRow.Cells[i].Visible =false;
}
}
}
}
}
相似回答