0

我想通过单击按钮上下移动gridview行,我遵循了这个

http://www.aspdotnet-suresh.com/2012/06/move-aspnet-gridview-rows-up-and-down.html

它工作正常。但是,我在我的 gridview 上启用了排序。对列进行排序时,行不会上下移动。有人可以建议如何实现它,以便即使对列进行排序,gridview 行也会上下移动。

谢谢,

4

2 回答 2

2

这是在网格视图中向上和向下移动行的另一种方法。

if (e.CommandName == "UP")
        {
        Button btnup = (Button)sender;
        GridViewRow row = (GridViewRow)btnup.NamingContainer;
        var rows = id.Rows.Cast<GridViewRow>().Where(a => a != row).ToList();
        switch (e.CommandName)
        {
            case "UP":
                if (row.RowIndex.Equals(0))
                    rows.Add(row);
                else
                    rows.Insert(row.RowIndex - 1, row);
                break;
            case "Down":
                if (row.RowIndex.Equals(id.Rows.Count - 1))
                    rows.Insert(0, row);
                else
                    rows.Insert(row.RowIndex + 1, row);
                break;
        }
    }
于 2012-10-17T06:01:29.283 回答
1

旧帖子但没有足够的代表发表评论,Pratiks 的回答只会触发 UP 命令,因为 Down 命令是在第一个 if 语句中构建的......它需要。

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);}
}
于 2015-09-04T10:50:56.567 回答