在datagrid Item Databound事件中,我想知道网格是否已经第一次排序或加载。我知道有一个事件OnSortCommand,我可以在这里设置一些变量来检查网格上是否有排序。但我想知道是否有更好的方法来检查网格是否已经排序。谢谢你。为了你的帮助。
PS:我看了一下post,建议检查Request.Form["__EVENTTARGET"]
和Request.Form["__EVENTARGUMENT"]
。假设我在网格中有'x'个列和表单上的其他服务器控件,我觉得这不是一个正确的方法来获得'x'如果条件并检查请求是否来自其中一个控件。
答案 0 :(得分:1)
如果对DataGridView进行排序,则将设置其SortedColumn属性。
答案 1 :(得分:0)
以下示例验证DataGridView控件的列的排序顺序或检查属性排序顺序的状态。
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
}
}
此致
答案 2 :(得分:0)
您链接的帖子的建议相当不优雅;)
I suggest you read this,这是非常直截了当的例子。它使用DataView对数据进行排序。如果你想因为某种原因“记住”,用于排序网格的最后一个排序表达式,你可以简单地将它存储在ViewState中:
ViewState["LastSortExpression"]=e.SortExpression;
根据需要在PostBack上检索它。