您的当前位置:首页>新品 > 正文

GridView:指定模板列的两种方式

来源:CSDN 时间:2023-03-10 09:20:36


(资料图片仅供参考)

在GridView中可以通过两种方式来指定模板列的标题:     1 通过HeaderText属性指定:

2 通过HeaderTemplate模板来指定

其中第一种方式会触发Sorting事件,第二种方式不会。所以如果要想为模板列提供排序的,要采用第一种方式指定标题。

一下是一个完整的列子

1. 一个GridView

首先: 将GridView的 AllowSorting 属性 设置为 true。(允许点击每一列的头来排序)

然后: 设置你想排序的列的 SortExpression="id" 为你要排序的数据源的相应属性。

2. 完成代码

public partial class mastermanage_CarManage : System.Web.UI.Page{    ////// 查询出来的 car信息的list    ///IEnumerablecarList = null;    UserDao userDao = new UserDao();    protected void Page_Load(object sender, EventArgs e)    {                carList = userDao.getUserCar();        this.GridView1.DataSource = carList;        this.GridView1.DataBind();    }        ////// 模板列排序的方法    /////////protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)    {        // 从事件参数获取排序数据列        string sortExpression = e.SortExpression.ToString();        // 假定为排序方向为“顺序”        string sortDirection = "ASC";        // “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改        if (sortExpression == this.GridView1.Attributes["SortExpression"])        {            //获得下一次的排序状态            sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");        }        // 重新设定GridView排序数据列及排序方向        this.GridView1.Attributes["SortExpression"] = sortExpression;        this.GridView1.Attributes["SortDirection"] = sortDirection;        this.BindGridView();    }    ////// 这个 使用 linq帮定的    ///private void BindGridView()    {        // 获取GridView排序数据列及排序方向        string sortExpression = this.GridView1.Attributes["SortExpression"];        string sortDirection = this.GridView1.Attributes["SortDirection"];        // 调用业务数据获取方法        UserDao userDao = new UserDao();        // 根据GridView排序数据列及排序方向设置显示的默认数据视图        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))        {            if (sortDirection.Equals("DESC"))            {                // l => l.id 这个应该按照 sortExpression的内容来写                //carList = from l in carList orderby l.id ascending select l;                carList = carList.OrderBy(l => l.id);            }            else            {                //carList = from l in carList orderby l.id descending select l;                carList = carList.OrderByDescending(l => l.id);            }                    }        // GridView绑定并显示数据         this.GridView1.DataSource = carList.ToList();        this.GridView1.DataBind();    }}

////// 绑定到 DataTable 数据源 排序    ///private void BindGridView()    {        // 获取GridView排序数据列及排序方向        string sortExpression = this.GridView1.Attributes["SortExpression"];        string sortDirection = this.GridView1.Attributes["SortDirection"];        // 调用业务数据获取方法        DataTable dtBind = this.getDB();        // 根据GridView排序数据列及排序方向设置显示的默认数据视图        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))        {            dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);        }        // GridView绑定并显示数据        this.GridView1.DataSource = dtBind;        this.GridView1.DataBind();    }    ////// DataTable 数据源    //////private DataTable getDB()    {        DataTable dt = new DataTable();        dt.Columns.Add("id");        dt.Columns.Add("name");        dt.Columns.Add("age");        dt.Rows.Add(new object[] { "000001", "hekui"});        dt.Rows.Add(new object[] { "000002", "zhangyu"});        dt.Rows.Add(new object[] { "000003", "zhukundian"});        dt.Rows.Add(new object[] { "000004", "liyang"});        dt.Rows.Add(new object[] { "000005", "caili"});        return dt;    }

标签:

最新新闻:

新闻放送
Top