zoukankan      html  css  js  c++  java
  • Gridview标题头添加排序图片

    向gridview标题头中添加排序图片,当点击某一个头标题时,在标题中出现升序箭头向上的图片,再点击一次时降序,在标题中出现箭头向下的图片,初始页面时在标题头中并不现实任何图片。

    先定义好一个gridview,在gridview数据绑定结束后调下面方法。

    protected void SortForImage(string sortDirection, string sortExpression)
            {
                if (!string.IsNullOrEmpty(sortExpression))
                {
                    GridViewRow headRow = gvPlanedTools.HeaderRow;
                    Image sortImage = new Image();
                    if (sortDirection == "ASC")
                    {
                        sortImage.ImageUrl = "~/_layouts/1033/IMAGES/WebPartImages/bullet_arrow_down.png";
                        sortImage.Style.Add("vertical-align", "bottom");
                    }
                    else
                    {
                        sortImage.ImageUrl = "~/_layouts/1033/IMAGES/WebPartImages/bullet_arrow_up.png";
                        sortImage.Style.Add("vertical-align", "bottom");
                    }
                    int num = 0;
                    foreach (DataControlField field in gvPlanedTools.Columns)
                    {
                        if (field.SortExpression == sortExpression.ToString().Trim())
                        {
                            num = gvPlanedTools.Columns.IndexOf(field);
                        }
                    }
                    headRow.Cells[num].Controls.Add(sortImage);
                }
            }

    另外在gridview sorting 方法中也需调用此方法,这里是在BindView()方法中调用上面添加图片排序的方法, 如:

    protected void gvPlanedTools_Sorting(object sender, GridViewSortEventArgs e)
            {
                string sortExpression = e.SortExpression.ToString();
                string sortDirection = "ASC";
                if (sortExpression == gvPlanedTools.Attributes["SortExpression"])
                {
                    sortDirection = (gvPlanedTools.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
                }
                gvPlanedTools.Attributes["SortExpression"] = sortExpression;
                gvPlanedTools.Attributes["SortDirection"] = sortDirection;
                BindView();
            }

    BindView细节如下:

     private void BindView()
            {
                DataSet ds = GetDataSet();
                if (IsDateSetNullOREmpty(ds))
                {
                    DataTable dt = ds.Tables[0];
                    ViewState["PageCount"] = dt.Rows.Count.ToString();
                    string sortExpression = gvPlanedTools.Attributes["SortExpression"];
                    string sortDirection = gvPlanedTools.Attributes["SortDirection"];
                     if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
                    {
                        dt.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
                    }
                    gvPlanedTools.DataSource = dt.DefaultView;
                    gvPlanedTools.DataBind();
                    SortForImage(gvPlanedTools.Attributes["SortDirection"], gvPlanedTools.Attributes["SortExpression"]);
                }
            }
  • 相关阅读:
    TCP链接异常断开后,对端仍然ESTABLISH
    mds0: Many clients (191) failing to respond to cache pressure
    Linux C/C++编译过程中的各种not declared in this scope
    Centos7添加磁盘并分区格式化
    Windows Terminal——安装并配置主题
    Kbone——创建项目报错 name can no longer contain capital letters
    Redis——大批量删除redis的key
    Redis——设置最大内存 | key淘汰机制
    Nightingale——滴滴夜莺部署【一】
    ELK——使用Docker快速搭建
  • 原文地址:https://www.cnblogs.com/bradwarden/p/3255684.html
Copyright © 2011-2022 走看看