首页  ·  知识 ·  云计算
给gridview添加上下移动功能
flashlm  http://www.cnblogs.com/flashlm/    编辑:dezai  图片来源:网络
存储过程代码:CREATE PROCEDURE [sp_trans_dept] @now_id int,@upside_id int ASdeclare @tmp_ordering int&nb

存储过程代码:
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)            {
                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 += "";
        outstr += "alert('" + message + "');";
        outstr += "";
        Response.Write(outstr);
    }
    #endregion
程序前台代码:

                 
             

             
                 
             

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());
            }

本文作者:flashlm 来源:http://www.cnblogs.com/flashlm/
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读