用一个datatable做为datagridview的datasource后,如何设置将某一列的值作为每一行的标头?
我用这样的办法
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}
但是问题很多。有时候根本就显示不出来,有时候对gird排序的时候标头就没有了。
不知道为什么。
不知道大家有没有遇到这样的问题。
路过的朋友请帮忙,顶着有分。200够分的吧。
我用这样的办法
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}
但是问题很多。有时候根本就显示不出来,有时候对gird排序的时候标头就没有了。
不知道为什么。
不知道大家有没有遇到这样的问题。
路过的朋友请帮忙,顶着有分。200够分的吧。
不知道为什么。----------------------------------------------------------------
排序的时候,
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}这段代码还会执行一次吗?
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}这段代码还会执行一次吗?
----------------------------
不会
排序的过程会不会把行的标头的数据冲掉?
排序的过程会不会把行的标头的数据冲掉?
---------排序是用户做的,点击列头进行排序,datagridview的自带功能。
你说的改datatable的方法可行?datatable没有行标头的概念吧?!
这就说明,datagridview自带的这个排序会把数据重新邦定一次,而此时你的代码没有自动执行,所以就没有行头了。不知如此分析正否?
这就说明,datagridview自带的这个排序会把数据重新邦定一次,而此时你的代码没有自动执行,所以就没有行头了。不知如此分析正否?
-------------可能是这样的原因,可是今天我做另一个gridview的时候竟然直接不显示了,都不用等排序再消失,晕死。
我想是不是这个方法不适用于绑定的gridview?
gridview只要给它的table有值,它就会显示的。能不能截获这个排序事件?在其中进行处理即可。
2:用你的方法给首列赋值
3:重新排序时,调用你的方法。
我只知道这么多。期待高人给出其它思路。
gridview只要给它的table有值,它就会显示的。能不能截获这个排序事件?在其中进行处理即可。
------------有值没有错啊,可是table没有行标头的概念。
这个行标头只能够通过再次加工才能加上去。
而且我现在遇到的问题不只是在排序后才发生了。
说明我这种改变行标头的方法是缺陷的。
有没有别的办法对行标头进行赋值呢?!
2:用你的方法给首列赋值
3:重新排序时,调用你的方法。
我只知道这么多。期待高人给出其它思路。
------------------------
重新排序再调用行标头赋值的办法太过于蹩脚。
我想不应该用这样的解决办法的。而且我再强调一下,我的问题有发生在未排序之前,所以不一定是排序的关系了!
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}HeaderCell只是一个标签
估计MS在重绘grid后会清空这个东西
可是在非绑定的gridview中不会出现这样的情况!
要是GridView不是应该这样写吗foreach(GridViewRow row in this.GridView1.Rows)
要是GridView不是应该这样写吗foreach(GridViewRow row in this.GridView1.Rows)
------
datagridview
VS2005的新控件
偶說的行列轉換就是將某個字段里的值轉成字段名。是不是這樣的效果
http://blog.csdn.net/hz_hyang/archive/2006/11/10/1377786.aspx
主要是點繫排序時,會重新畫整個控件,而導致你前面設定的行的標頭無效。
把foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}
放到paint事件中試試。
樓主不是要将某一列的值作为每一行的标头嗎?
偶說的行列轉換就是將某個字段里的值轉成字段名。是不是這樣的效果
http://blog.csdn.net/hz_hyang/archive/2006/11/10/1377786.aspx
我想不是要这样的。
在formload事件加
foreach(DataGridViewRow row in grid)
{
row.HeaderCell.Value = row.Cells["..."].Value;
}
2有时候对gird排序的时候标头就没有了。
在sort事件加以上代码.
-------------------