C# 上下网格视图

C# 上下网格视图,c#,asp.net,gridview,C#,Asp.net,Gridview,嗨,我的aspx页面中有一个网格。当用户单击网格中的“上移和下移”按钮时,网格行应上移和下移 我在这里禁用第一行“向上”按钮和最后一行“向下”按钮 这很好,但是当我向网格中插入“分页”时,上下移动只在该页面中起作用。例如,我无法将第2页数据移动到第1页 每页顶部的“向上”和“向下”按钮都被禁用。因此,我无法将第3页的行数据移动到第1页 这是我的密码 protected void BindGridview() { con.Open(); //cmd = ne

嗨,我的aspx页面中有一个网格。当用户单击网格中的“上移和下移”按钮时,网格行应上移和下移

我在这里禁用第一行“向上”按钮和最后一行“向下”按钮

这很好,但是当我向网格中插入“分页”时,上下移动只在该页面中起作用。例如,我无法将第2页数据移动到第1页

每页顶部的“向上”和“向下”按钮都被禁用。因此,我无法将第3页的行数据移动到第1页

这是我的密码

protected void BindGridview()
    {
        con.Open();
        //cmd = new SqlCommand("select * from MobileDetails order by Priority asc", con);
        cmd = new SqlCommand("select IDCHECKITEM,CHECKITEM,DESCRIPTION,SORTORDER from CHECKITEM order by SORTORDER asc", con);            
        da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        con.Close();
        gvUserInfo.DataSource = ds;
        gvUserInfo.DataBind();
        GridViewRow FirstRow = gvUserInfo.Rows[0];
        Button btnUp = (Button)FirstRow.FindControl("btnUp");
        btnUp.Enabled = false;
        GridViewRow LastRow = gvUserInfo.Rows[gvUserInfo.Rows.Count - 1];
        Button btnDown = (Button)LastRow.FindControl("btnDown");
        btnDown.Enabled = false;
    }        

    protected void gvUserInfo_RowDataCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = 0;
        GridViewRow gvrow;
        GridViewRow previousRow;
        if (e.CommandName == "Up")
        {
            index = Convert.ToInt32(e.CommandArgument);
            gvrow = gvUserInfo.Rows[index];
            previousRow = gvUserInfo.Rows[index - 1];
            int mobilesort = Convert.ToInt32(gvUserInfo.DataKeys[gvrow.RowIndex].Value.ToString());
            //int mobilePriority = Convert.ToInt32(gvUserInfo.DataKeys[gvrow.RowIndex].Value.ToString());
            int mobileId = Convert.ToInt32(gvrow.Cells[0].Text);
            int previousId = Convert.ToInt32(previousRow.Cells[0].Text);
            con.Open();
            cmd = new SqlCommand("update CHECKITEM set SORTORDER='" + (mobilesort - 1) + "' where IDCHECKITEM='" + mobileId + "'; update CHECKITEM set SORTORDER='" + (mobilesort) + "' where IDCHECKITEM='" + previousId + "'", con);
            cmd.ExecuteNonQuery();
            con.Close();
        }
        if (e.CommandName == "Down")
        {
            index = Convert.ToInt32(e.CommandArgument);
            gvrow = gvUserInfo.Rows[index];
            previousRow = gvUserInfo.Rows[index + 1];
            int mobilesort = Convert.ToInt32(gvUserInfo.DataKeys[gvrow.RowIndex].Value.ToString());
            int mobileId = Convert.ToInt32(gvrow.Cells[0].Text);
            int previousId = Convert.ToInt32(previousRow.Cells[0].Text);
            con.Open();
            cmd = new SqlCommand("update CHECKITEM set SORTORDER='" + (mobilesort + 1) + "' where IDCHECKITEM='" + mobileId + "'; update CHECKITEM set SORTORDER='" + (mobilesort) + "' where IDCHECKITEM='" + previousId + "'", con);
            cmd.ExecuteNonQuery();
            con.Close();
        }
        BindGridview();
    }

    protected void gvUserInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvUserInfo.PageIndex = e.NewPageIndex;
        BindGridview();
    }

我想你应该这样做:请在页面索引结束时为除最后一行之外的每一行启用按钮。你可以利用count来做这件事。并且对列表的第一项也做同样的事情。希望这能对你有所帮助