C# winform DataGridView有空白行时点击列标题排序问题
DataGridView能显示10行,但是数据有可能没有10条,就在后面填了空行,让它填满整个DataGridView。如下所示:
...
//得到DataSet
...
//补充空行,填满整个DataGridView
while (dataset.Tables[0].Rows.Count < 10)
dataset.Tables[0].Rows.Add();
//数据源
DataGridView1.DataSource = dataset.Tables[0];
但是有一个问题,就是点击列标题时,会自动排序,就把填加的空行给排到前面了,怎么才能让排序时不排空行,就是空行一直在最后几行?谢谢了。 --------------------编程问答-------------------- 在DataGridView.SortCompare 事件处理
private void dataGridView1_SortCompare(object sender,
DataGridViewSortCompareEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex2] 是空行)
{
e.SortResult = 1;
}
e.Handled = true;
}
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
试过了,没用,我看了下MSDN,对于这个函数:
只有当未设置 DataSource 属性,并且 VirtualMode 属性值为 false 时,此事件才会发生。 --------------------编程问答-------------------- 那你就不设置 DataSource 属性,并且 VirtualMode 属性值为 false ,手工填数据 --------------------编程问答-------------------- 设置datagirdview的列的属性
datagirdview1.Columns[0].SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
其他列同样设置,可以在设置datagirdview格式的时候设置,也可以向上面那样写代码设置 --------------------编程问答--------------------
这样就不能排序了。。 --------------------编程问答--------------------
就是要绑定数据源,手工填数据的话还不如直接用ListView了,就没有空行的问题了
不过这也算是个办法,还有没有更好的办法了? --------------------编程问答-------------------- SortCompare事件里把空行删除,完事了再加上呗!! --------------------编程问答--------------------
SortCompare事件:
只有当未设置 DataSource 属性,并且 VirtualMode 属性值为 false 时,此事件才会发生。 --------------------编程问答--------------------
单击标题列时的事件就处理:
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
//
}
--------------------编程问答--------------------
单击标题列时删除空行,排完序再添加空行,这样也行。
排完序是哪个事件? --------------------编程问答-------------------- 前边的都没用,就最后那哥们的偶用!
补充:.NET技术 , C#