古い投稿ですが、コメントするのに十分な担当者がいません。Pratiksの回答は、Downコマンドが最初のifステートメント内に構築されているため、UPコマンドのみを起動します...必要があります。
Button btnup = (Button)sender;
GridViewRow row = (GridViewRow)btnup.NamingContainer;
var rows = id.Rows.Cast<GridViewRow>().Where(a => a != row).ToList();
if (e.CommandName == "UP")
{
if (row.RowIndex.Equals(0)) {
rows.Add(row);}
else {
rows.Insert(row.RowIndex - 1, row); }
}
}
else if (e.CommandName == "DOWN")
{
if (row.RowIndex.Equals(id.Rows.Count - 1)) {
rows.Insert(0, row);}
else {
rows.Insert(row.RowIndex + 1, row);}
}