推广 热搜: 可以  搜索引擎  企业  page  个数  百度  使用  音视频  选择  父亲 

DataGrid升降序排列

   日期:2024-12-31     移动:http://ww.kub2b.com/mobile/quote/11237.html

DataGrid是ASP.NET中非常重要的一个控件。它能方便的让我们实现编辑、排序功能;但是排序功能默认的是升序(ASC,能不能让DataGrid同时实现升降序排列呢?这篇文章将给你一个比较好的解决方法。

 

下面的例子将告诉你如何给DataGrid动态添加sortexpression 和 sortdirection 属性,并通过DataView使DataGird中的数据按照这两个属性排列。在这个例子中使用的DataGrid的sortexpression属性只需要在sortcommand事件中设置(和通常的排序一样,DataGrid的sortexpression 属性保存了最后一次用来排序的字段名称,DataGrid的sortdirection 属性保存了最后一次用来排序的字段排列方式(“ASC”或者“DESC”

 

页面设计

1.       在页面上添加一个DataGrid
2.       设置DataGrid的AllowSorting属性为True
3.       设置AutogenerateColumns 属性为False
4.       添加要绑定的字段到DataGrid,并按照下表设置其属性。Sortexpression属性和数据库中数据表中的字段名保持一致。

我使用Northwind数据库中的Employees来说明这个例子。

DataTextField Header Text  Sort expression

EmployeeID Employee ID EmployeeID
LastName LastName LastName
FirstName FirstName FirstName
Title   Title   Title
City   City  City
Country  Country  Country

 

程序代码设计

1.       在页面第一次被加载时给DATAGRID添加动态属性sortexpression 和 sortdirection
2.       给指定的字段的sortexpression 和 sortdirection 赋值,在加载时初始化DataGrid的排序字段和排序方式
3.       得到dataset 和 dataview 对象。设置dataview 的sort 属性为动态属性sortexpression 和 sortdirection的连接字符串
4.       用dataview绑定datagrid
5.       当表头被点击时,触发datagrid的sortcommand事件
6.       得到sortcommand事件传递过来的sortexpression属性,并与datagrid的sortexpression属性比较
7.       如果找到相等的
a)       先检查sortdirection属性
b)       If sortdirection属性等于“ASC”then
          i.        设置sortdirection属性的值等于“DESC”
c)        Else
               i.        设置sortdirection属性的值等于“ASC”
d)       End If
8.       重复第3步

注意:当你运行下面的代码并点击同一列两次或者两次以上,此列的排列方式会自动根据现有的排列方式的反序排列。
下面的下面的代码将给你演示怎么使用DataGrid的动态属性和DataView对象。

 

C# Code:

private void Page_Load(object sender, System.EventArgs e)
{
    // 在此处放置用户代码以初始化页面

    if(!Page.IsPostBack)
    {
        if(DataGrid1.Attributes["Sortexpression"] == null)
        {
            DataGrid1.Attributes["Sortexpression"] = "LastName";
            DataGrid1.Attributes["SortDirection"] = "ASC";
        }
        BindGrid();
    }
}

 

private void BindGrid()
{
    SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=sa;database=Northwind");
    conn.Open();
    SqlDataAdapter cmd = new SqlDataAdapter("select * from Employees",conn);
    DataSet ds = new DataSet();
    cmd.Fill(ds,"Employees");

    DataView dv = new DataView();
    dv = ds.Tables[0].DefaultView;
    string Sortexpression = DataGrid1.Attributes["Sortexpression"];
    string SortDirection = DataGrid1.Attributes["SortDirection"];
    dv.Sort = Sortexpression + " " + SortDirection;

    DataGrid1.DataSource = dv;
    DataGrid1.DataBind();
}

 

本文地址:http://ww.kub2b.com/quote/11237.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号