`
talentnba
  • 浏览: 92629 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Asp.Net GridView點擊標題排序方法

阅读更多

今天需要用到在GridView中點擊標題排序,琢磨了半天,終於成功了。在看代碼之前需要說明一點:
      GridView本身有一个Sort()函数:public virtual void Sort ( string sortExpression,    SortDirection sortDirection)使用上相当方便。但在实际使用中,常用的是点击每一列的标题来排序,点击标题会触发:protected void GridView_Sorting(object sender, GridViewSortEventArgs e)事件。从GridViewSortEventArgs中可以拿到SortDirection和SortExpression。但是GridView.Sort()本身也会触发GridView_Sorting(),如果在GridView_Sorting()中调用GridView.Sort()会无限的循环,直到堆栈溢出。這里使用DataView.Sort属性来排序,(Sort方法會觸發Sorting 事件),再重新綁定到GridView上。

代碼如下:

1、在源碼中給GridView中加入AllowSorting屬性

    //1、在源碼的GridView中加入AllowSorting="true"    
    <asp:GridView ID="gvData" runat="server"  AllowSorting="true">
    
</asp:GridView>


2、    ClbComunication.clsComunication類中定義了一個屬性,用於暫存從數據庫得到的資料:
    注:定義此屬性是因為頁面顯示后,剛才得的資料表(mdatatable)的資料會被清空。所以將得到的資料暫存於類中,便於調用。

        /// <summary>
        
/// 存放資料DataView屬性的變量
        
/// </summary>
        private static DataView dvValue = new DataView();
        
/// <summary>
        
/// 存放資料DataView屬性
        
/// </summary>
        public static DataView dv
        {
            
get { return dvValue; }
            
set { dvValue = value; }
        }


3、將資料放入類的DataView屬性中保存

       //得到資料(BOFactory.bofactory.GetOracleDataTable(mSQL_Selection)為從數據庫得到資料)
        DataTable mdatatable = BOFactory.bofactory.GetOracleDataTable(mSQL_Selection);
        
//將需要排序的資料放入DataView中(主要用到此句)
        ClbComunication.clsComunication.dv = new DataView(mdatatable);
        
//資料與界面上的GridView綁定
        gvData.DataBind();


4、訂閱GridView的Sorting事件

    //GridView的Sorting事件
    gvData.Sorting += new GridViewSortEventHandler(gvData_Sorting);


5、編輯GridView的Sorting事件方法,其中用到的GridViewSortDirection屬性的定義如"6"所示

    /// <summary>
    
/// GridView的Sorting事件方法
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>
    void gvData_Sorting(object sender, GridViewSortEventArgs e)
    {
        
string sortExpression = e.SortExpression.ToUpper();
        
if (GridViewSortDirection ==SortDirection.Ascending)
        {
            GridViewSortDirection 
= SortDirection.Descending;
            
//排序並重新綁定
            bindData(sortExpression, "DESC");
        }
        
else if (GridViewSortDirection == SortDirection.Descending)
        {
            GridViewSortDirection 
= SortDirection.Ascending;
            
//排序並重新綁定
            bindData(sortExpression, "ASC");
        }
    }


6、定義排序方向屬性,此属性用viewstate保存每次排序的方向:

    /// <summary>
    
/// 排序方向屬性
    
/// </summary>
    public SortDirection GridViewSortDirection
    {
        
get
        {
            
if (ViewState["sortDirection"== null)
                ViewState[
"sortDirection"= SortDirection.Ascending;
            
return (SortDirection)ViewState["sortDirection"];
        }
        
set
        {
            ViewState[
"sortDirection"= value;
        }
    }


7、排序並綁定數據

    /// <summary>
    
/// 排序並綁定數據
    
/// </summary>
    
/// <param name="sortExpression"></param>
    
/// <param name="sortDirection"></param>
    protected void bindData(string sortExpression, string sortDirection)
    {
        ClbComunication.clsComunication.dv.Sort 
= sortExpression;
        
if (sortDirection != String.Empty)
        {
            ClbComunication.clsComunication.dv.Sort 
= sortExpression+" " + sortDirection;
        }
        gvData.DataSource 
= ClbComunication.clsComunication.dv;
        gvData.DataBind();
    }
分享到:
评论

相关推荐

    asp.net gridview 固定标题和列

    ASP.NET GridView 控件是.NET Framework中用于数据展示的重要组件,尤其在Web应用程序中,它提供了丰富的功能,如分页、排序、筛选等。在描述中提到的“asp.net gridview 固定标题和列”,指的是如何在GridView中...

    ASP.NET GridView表格列宽拖动功能示例

    ASP.NET GridView 是一个强大的数据呈现控件,常用于在网页上展示结构化的数据。它提供了丰富的功能,如排序、分页、筛选等。在实际应用中,用户可能希望自定义表格列宽,以便更好地查看和操作数据。"ASP.NET ...

    asp.net gridview实例

    ASP.NET GridView 控件是.NET Framework Web开发中常用的数据呈现组件,尤其在构建数据密集型Web应用程序时。这个实例主要展示了GridView的功能,包括增删改、分页、排序以及无代码操作,同时也涉及到数据的导入导出...

    ASP.NET GridView控件源代码大全

    ASP.NET GridView控件是.NET Framework中的一个强大且常用的Web控件,主要用于展示数据,并提供了丰富的功能,如排序、分页、筛选和编辑等。在这个"ASP.NET GridView控件源代码大全"的压缩包中,您将找到一系列示例...

    一个很好的Asp.net GridView实例,初学者必备

    【Asp.net GridView详解】 Asp.net GridView控件是.NET框架中用于显示和操作数据的强大工具,尤其适合在Web应用程序中展示表格数据。这个实例是一个极好的起点,适合初学者学习,同时也为有经验的开发者提供了二次...

    asp.net gridview 上传和下载

    在标题“asp.net gridview 上传和下载”中,我们主要关注的是如何在GridView中实现文件的上传和下载功能。 首先,让我们来讨论文件上传。在ASP.NET中,可以使用FileUpload控件来实现文件上传功能。用户在前端选择...

    ASP.NET GridView+Bootstrap Demo Source Code

    GridView控件在ASP.NET中主要用于显示来自数据库或其他数据源的数据,并支持多种操作,如排序、分页、筛选和编辑。在"ASP.NET GridView+Bootstrap Demo Source Code"中,这个示例展示了如何利用GridView实现创建...

    ASp.NET GridView 编辑模板

    ASp.NET GridView 控件是ASP.NET Web Forms框架中一个强大的数据呈现组件,它允许开发者以表格形式展示数据,并提供各种交互功能,如排序、分页、筛选和编辑。"GridView 编辑模板"特指GridView控件在编辑模式下使用...

    ASP.net GridView合并单元格

    ASP.NET GridView 控件是.NET Framework 中用于数据展示的强大工具,尤其在Web应用程序中,它能够以表格形式方便地展示和操作数据库数据。GridView允许开发者轻松地进行数据绑定、排序、分页以及对数据进行编辑、...

    asp.net gridview 实现客户端 排序

    本篇文章将详细讲解如何实现ASP.NET GridView的客户端排序功能,无需每次用户点击列头时都向服务器发送请求,从而提高应用性能。 一、客户端排序原理 客户端排序的核心思想是在用户点击列头时,利用JavaScript处理...

    ASP.NET GridView中两种全选方法.txt

    在ASP.NET开发中,`GridView`控件是非常常用的一个数据展示组件,它能够方便地将数据源中的数据以表格形式显示出来,并且提供了丰富的功能来增强用户体验,比如排序、分页、编辑等。在实际应用中,我们常常需要在`...

    博文《Bootstrap Pagination for ASP.NET GridView》源代码

    Bootstrap Pagination for ASP.NET GridView 是一个将流行的前端框架Bootstrap与ASP.NET中的GridView控件结合,用于实现优雅且响应式的数据分页功能的技术。GridView是ASP.NET中常用的数据展示控件,而Bootstrap则是...

    asp.net GridView导出excel

    ASP.NET GridView控件是Web开发中常用的数据展示组件,它能够方便地展示数据库或其他数据源中的数据,并提供了丰富的自定义和操作功能。在许多实际应用中,用户可能需要将GridView中的数据导出到Excel文件中,以便...

    ASP.NET—005:GridView增加一行JS实现

    ASP.NET GridView 控件是.NET Framework 中用于数据展示和操作的强大工具。在网页开发中,GridView 经常被用来展示数据库中的数据,支持多种内置功能,如排序、分页和筛选。在“ASP.NET—005:GridView增加一行JS...

    Display image gallery in ASP.NET GridView Control

    在ASP.NET开发中,GridView控件是一个非常常用的数据展示组件,尤其适合于表格形式的数据展示。本主题将深入探讨如何利用GridView控件来创建一个图片画廊。在ASP.NET应用中,实现“Display image gallery in ASP.NET...

    asp.net GridView导出excel.rar

    在ASP.NET中,GridView控件是一个非常常用的组件,用于显示数据源中的表格数据。它提供了丰富的功能,如排序、分页、筛选等。而在实际应用中,常常有需求将GridView中的数据导出到Excel文件中,以便用户进行进一步的...

    给ASP.NET中GridView自动添加列排序箭头指示器图片控件源代码

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用组件,它提供了丰富的功能,如分页、排序、筛选等。本知识点将详细介绍如何在GridView中为列添加自定义的排序箭头指示器图片控件,以提供更加直观的用户交互...

    asp.net ajax GridView无刷新

    ASP.NET AJAX GridView 是一个强大的数据展示控件,它在ASP.NET框架中被广泛用于构建动态、交互式的Web应用程序。此技术允许用户在不重新加载整个页面的情况下更新GridView的数据,极大地提高了用户体验,因为用户...

    asp.net gridview的使用例子

    ASP.NET GridView 控件是Web开发中的一个强大工具,主要用于展示数据集合,并允许用户进行交互式操作。这个控件是ASP.NET框架的一部分,适用于构建数据驱动的网页应用。在这个"asp.net gridview的使用例子"中,我们...

    asp.net GridView自定义控件源码

    ASP.NET GridView 是一个非常强大的数据绑定控件,用于在网页上显示来自数据库或其他数据源的数据。这个"asp.net GridView自定义控件源码"显然提供了一种方式来美化默认的GridView,使其更具视觉吸引力和用户体验。 ...

Global site tag (gtag.js) - Google Analytics