最新文章
DataGrid升降序排列
2024-12-31 08:51

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

 

    以上就是本篇文章【DataGrid升降序排列】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/quote/11237.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站http://ww.kub2b.com/mobile/,查看更多   
发表评论
0评