给gridview添加上下移动功能

给gridview添加上下移动功能
CREATE PROCEDURE [sp_trans_dept]
@now_id int,
@upside_id int

AS
declare @tmp_ordering int       --临时变量
declare @sqlstr varchar(1000) --sql语句
declare @table_name varchar(500)
declare @column_name varchar(500)
set @table_name='tb_dept'
set @column_name='deptID'
select @tmp_ordering=ordering from tb_dept where deptID=@now_id
set @sqlstr='
update '+@table_name+' set ordering=(select ordering from '+@table_name+' where '+@column_name+'='+convert(varchar(50),@upside_id)+')
where '+@column_name+'='+convert(varchar(50),@now_id)
exec(@sqlstr)
set @sqlstr='
update '+@table_name+' set ordering = '+convert(varchar(50),@tmp_ordering)+'
where '+@column_name+'='+convert(varchar(50),@upside_id)
exec (@sqlstr)
GO
CREATE TRIGGER TRI_tb_dept ON dbo.tb_dept
FOR INSERT
AS
update dbo.tb_dept
set ordering=inserted.deptID
from inserted
where tb_dept.deptID=inserted.deptID
SQLOperation opera = new SQLOperation();
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        if (e.CommandName == "row_up")
        {
            if ((index - 1) >= 0) {
                int now_id = (int)GridView1.DataKeys[index].Value;
                int upside=(int)GridView1.DataKeys[index-1].Value;
                try
                {
                    opera.StoredProcedureOrdering("sp_trans_dept", "@now_id", "@upside_id", now_id, upside);
                    GridView1.DataBind();
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                    Response.End();
                }
            }
            else
            {
                Alert("已经是首行,不能上移");
            }
        }
        else if (e.CommandName=="row_down")
        {
            int rowsCount = GridView1.Rows.Count;
            if ((index+1)<rowsCount)
            {
                int now_id = (int)GridView1.DataKeys[index].Value;
                int upside = (int)GridView1.DataKeys[index + 1].Value;
                try
                {
                    opera.StoredProcedureOrdering("sp_trans_dept", "@now_id", "@upside_id", now_id, upside);
                    GridView1.DataBind();
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                    Response.End();
                }
            }
            else
            {
                Alert("已经是尾行,不能下移");
            }
        }
    }
    #region   警告信息
    public void Alert(string message)
    {
        string outstr = "";
        outstr += "<script   type='text/javascript'>";
        outstr += "alert('" + message + "');";
        outstr += "</script>";
        Response.Write(outstr);
    }
    #endregion
<asp:ButtonField CommandName="row_up" Text="上移">
                  <ItemStyle Width="40px" />
              </asp:ButtonField>
              <asp:ButtonField CommandName="row_down" Text="下移">
                  <ItemStyle Width="40px" />
              </asp:ButtonField>
C#
public override void StoredProcedureOrdering(string sp_Name,string para_name1,string para_name2,int value_1,int value_2)
        {
            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sp_Name, conn);
            if (conn.State.ToString() == "Closed")
                conn.Open();
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.Add(para_name1, SqlDbType.Int, 4).Value = value_1;
            cmd.Parameters.Add(para_name2, SqlDbType.Int, 4).Value = value_2;
           
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                throw new Exception(ex.Message.ToString());
            }
posted on 2008-09-04 16:35  草原和大树  阅读(928)  评论(1编辑  收藏  举报