检查datagrid是否已经排序
本文关键字:排序 是否 datagrid 检查 | 更新日期: 2023-09-27 18:07:01
在datagrid Item Databound事件中,我想知道网格是否已被排序或首次加载。我知道有一个事件OnSortCommand,我可以在这里设置一些变量来检查是否有排序发生在网格上。但是我想知道是否有更好的方法来检查网格是否已经排序。谢谢你的帮助。
PS:我看了这篇文章,它建议检查Request.Form["__EVENTTARGET"]
和Request.Form["__EVENTARGUMENT"]
。假设我在网格和表单上的其他服务器控件中有'x'列,我觉得拥有'x' If条件并检查请求是否来自这些众多控件之一不是正确的方式。
如果DataGridView是排序的,它的SortedColumn属性将被设置。
下面是一个验证DataGridView控件列排序顺序或检查属性sortorder状态的示例。
private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.Sorted +=new EventHandler(dataGridView1_Sorted);
}
void dataGridView1_Sorted(object sender, EventArgs e)
{
if (this.dataGridView1.SortOrder.Equals(SortOrder.Ascending))
{
// your code here
}
if (this.dataGridView1.SortOrder.Equals(SortOrder.Descending))
{
// your code here
}
if (this.dataGridView1.SortOrder.Equals(SortOrder.None))
{
// your code here
}
}
对
你链接的帖子的建议相当不优雅;)
我建议你读一下这个,这是一个非常直接的例子。它使用DataView对数据进行排序。如果出于某种原因想要"记住"用于对网格进行排序的最后一个排序表达式,您可以简单地将其存储在ViewState中,如下所示:
ViewState["LastSortExpression"]=e.SortExpression;
并根据需要在PostBack中检索。