Gridview自动排序功能的实现

 更新时间:2014年01月21日 09:25:55   作者:  
本篇文章主要是对Gridview自动排序功能的实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

注意两点:
1.要将gridview的AllowSorting属性置为true,同时设置OnSorting事件

2.在OnSorting事件中对排序的列设定SortExpression属性

复制代码 代码如下:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["Admin"] != "admin")
                {
                    //如果会话过期,则应该重新登录
                    this.Response.Write(" <script language=javascript>alert('你无权访问该页面,请与管理员联系!');window.location.href='../UserLogin.aspx';</script> ");
                }

复制代码 代码如下:

                ViewState["sortExpression"] = "Isdistribution";
                ViewState["sort"] = " ASC";

            }
            //绑定信息
            BindNodeInfo();
        }


        public void BindNodeInfo()
        {
            NodeLogic log = new NodeLogic();
            DataSet myset = log.GetNodeInfo();     //获取数据源
            DataView myview = myset.Tables[0].DefaultView;
            myview.Sort = ViewState["sortExpression"].ToString() +" "+ ViewState["sort"].ToString();
            this.NodeGridView.DataSource = myview;
            NodeGridView.DataKeyNames = new string[] { "node_id" };               //设置主键字段
            NodeGridView.DataBind();                                                  //绑定GridView控件 
        }

        protected void NodeGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.NodeGridView.PageIndex = e.NewPageIndex;
            BindNodeInfo();
        }

        protected void NodeGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            // 自动给第一列编号
            if (e.Row.RowIndex > -1)
            {
                e.Row.Cells[0].Text = Convert.ToString(e.Row.RowIndex + 1);
            }
        }

        protected void NodeGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            NodeLogic log = new NodeLogic();
            int id = int.Parse(this.NodeGridView.DataKeys[e.RowIndex].Values[0].ToString());
            if (log.DeleteNodeInfo(id))
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除成功!');", true);
            }
            else
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除失败!');", true);
            //重新更新数据显示
            BindNodeInfo();
        }

        protected void NodemGridView_RowEditing(object sender, GridViewEditEventArgs e)
        {

        }

        protected void AddNode_Click(object sender, EventArgs e)
        {
            Response.Redirect("AddNode.aspx");
        }

        protected void NodeGridView_Sorting(object sender, GridViewSortEventArgs e)
        {

            if (ViewState["sortExpression"] != null)
            {
                if (ViewState["sort"].ToString() == "Asc")
                {
                    ViewState["sort"] = "Desc";
                }
                else
                {
                    ViewState["sort"] = "Asc";

                }
            }
            BindNodeInfo();
        }

相关文章

  • C#强制类型转换小结

    C#强制类型转换小结

    任何一门编程语言均有相关数据类型。C#也不例外,不过转换过程要注意小类型能转换成大类型,但大类型一般不能转换成小类型,下面小编给大家详解C#强制类型转换小结,需要的朋友参考下吧
    2017-07-07
  • c#中如何获取指定字符前的字符串

    c#中如何获取指定字符前的字符串

    这篇文章主要介绍了c#中如何获取指定字符前的字符串问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 解决C#获取鼠标相对当前窗口坐标的实现方法

    解决C#获取鼠标相对当前窗口坐标的实现方法

    本篇文章是对在C#中获取鼠标相对当前窗口坐标的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c#获取存储过程返回值示例分享

    c#获取存储过程返回值示例分享

    这篇文章主要介绍了C#获取存储过程返回值的方法,大家参考使用吧
    2014-01-01
  • WPF实现授权码显示密文并支持换行

    WPF实现授权码显示密文并支持换行

    这篇文章主要为大家详细介绍了如何使用WPF实现授权码显示密文并支持换行,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-10-10
  • C#实现简单获取及设置Session类

    C#实现简单获取及设置Session类

    这篇文章主要介绍了C#实现简单获取及设置Session类,涉及C#针对session的设置及获取的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • WinForm窗体间传值的方法

    WinForm窗体间传值的方法

    这篇文章主要介绍了WinForm窗体间传值的方法,包括了静态变量、公共变量、共有属性等方式,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • C#解析Lrc歌词文件过程详解

    C#解析Lrc歌词文件过程详解

    这篇文章主要为大家详细介绍了C#解析Lrc歌词文件过程,很有趣的解析过程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • C#串口通信总是丢数据的原因及解决方案

    C#串口通信总是丢数据的原因及解决方案

    在上位机开发中,串口通信是一个非常常见的通信方式,尤其是在与嵌入式设备、PLC、传感器等硬件设备进行交互时,串口通信简单、直接且广泛应用,但它也有自己的局限性,那么,为什么你的C#串口通信总是丢数据?本文将深度分析串口通信丢数据的原因,并提供一些有效的解决方案
    2025-02-02
  • C#中参数个数可变的方法实例分析

    C#中参数个数可变的方法实例分析

    这篇文章主要介绍了C#中参数个数可变的方法,以一个简单实例分析了C#中参数个数可变的方法,主要是使用params关键字来实现的,是C#编程中比较实用的技巧,需要的朋友可以参考下
    2014-11-11

最新评论