首页 新闻 赞助 找找看

江湖救急:GirdView点击列头排序同时修改列头名

-1
悬赏园豆:40 [已解决问题] 解决于 2014-11-30 22:05

遇到一个需求:GirdView 表:

用户希望触发列头排序OnSorting的时候 同时 将 列头显示内容   "金额<"    改为  "金额>",
 <asp:BoundField HeaderText="金额&
lt;" SortExpression=" price" DataField="price" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:F}" />

,我希望在利用GirdView绑定上解决,而不是换成repeater控件,换成其他控件工程量太大,不好改,各位道友有什么好的建议吗

不老的石头的主页 不老的石头 | 初学一级 | 园豆:96
提问于:2014-11-21 18:11
< >
分享
最佳答案
1

How to Perform Sorting in Gridview in ASP.NET

不清楚你是不懂排序,还是不懂在COLUMN Header上修改标题,随便转个链接,你自己慢慢看吧。

收获园豆:33
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-11-21 18:35

排序没有问题,就是用户要求 在排序的时候 同时将 COLUMN Header标题进行更改, 列头文本 "金额<"    改为  "金额>",这样客户能够根据列头Header   知道自己当前进行的是 升序排列还是 降序排列, (当然文本不一定是"<"或者 “>”这个符号,特殊符号无法显示,只好用"<"">"代替)  , 有办法解决吗

不老的石头 | 园豆:96 (初学一级) | 2014-11-21 19:01

@不老的石头: 

 你没有看那篇文章吗?

Image sortImage = new Image();
protected void SetSortDirection(string sortDirection)
{
    if (sortDirection == "ASC")
    {
        _sortDirection = "DESC";
        sortImage.ImageUrl = "view_sort_ascending.png";
    }
    else
    {
        _sortDirection = "ASC";
        sortImage.ImageUrl = "view_sort_descending.png";
    }
}
爱编程的大叔 | 园豆:30839 (高人七级) | 2014-11-21 19:25

@爱编程的大叔: 当时想到用html拼接头的方法,没来得急测试你推荐的方法,测试了,可以解决我的需求,非常感谢

  protected void gvOrdersSourceDistribution_Sorting(object sender, GridViewSortEventArgs e)         {             string sortExpression = e.SortExpression;             int columnIndex = 0;             foreach (DataControlFieldHeaderCell headerCell in gvOrdersSourceDistribution.HeaderRow.Cells)             {                 if (headerCell.ContainingField.SortExpression == e.SortExpression)                 {                     columnIndex = gvOrdersSourceDistribution.HeaderRow.Cells.GetCellIndex(headerCell);                 }             }

            if (GridViewSortDirection == SortDirection.Ascending) //设置排序方向:升序变成降序             {                 GridViewSortDirection = SortDirection.Descending;                 SortGridView(sortExpression, " DESC");             }             else             {                 GridViewSortDirection = SortDirection.Ascending;//设置排序方向:降序变成升序                 SortGridView(sortExpression, " ASC");             }             this.gvOrdersSourceDistribution.HeaderRow.Cells[columnIndex].Text = "测试,可以这样改变头";         }

不老的石头 | 园豆:96 (初学一级) | 2014-11-30 21:57

@爱编程的大叔: 当时想到用html拼接头的方法,没来得急测试你推荐的方法,测试了,可以解决我的需求,非常感谢

 

   protected void gvOrdersSourceDistribution_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sortExpression = e.SortExpression;
            int columnIndex = 0;
            foreach (DataControlFieldHeaderCell headerCell in gvOrdersSourceDistribution.HeaderRow.Cells)
            {
                if (headerCell.ContainingField.SortExpression == e.SortExpression)
                {
                    columnIndex = gvOrdersSourceDistribution.HeaderRow.Cells.GetCellIndex(headerCell);
                }
            } 

            if (GridViewSortDirection == SortDirection.Ascending) //设置排序方向:升序变成降序
            {
                GridViewSortDirection = SortDirection.Descending;
                SortGridView(sortExpression, " DESC");
            }
            else
            {
                GridViewSortDirection = SortDirection.Ascending;//设置排序方向:降序变成升序
                SortGridView(sortExpression, " ASC");
            }
            this.gvOrdersSourceDistribution.HeaderRow.Cells[columnIndex].Text = "测试";
        }
不老的石头 | 园豆:96 (初学一级) | 2014-11-30 21:59
其他回答(3)
0

这个~~说实话  web的服务器控件已经很少用了,

你可以尝试一下,加一个点击事件,

或是在排序事件里面写一下.

收获园豆:2
只会造轮子 | 园豆:2274 (老鸟四级) | 2014-11-21 18:15

排序事件里无法获得列头文本

支持(0) 反对(0) 不老的石头 | 园豆:96 (初学一级) | 2014-11-21 19:02

@不老的石头: 知道点击的哪个列,也知道是正序还是倒序,应该就可以修改的.

支持(0) 反对(0) 只会造轮子 | 园豆:2274 (老鸟四级) | 2014-11-21 20:04

@创业公司招技术人员.地点在沧州.薪资私聊: 我目前采取的方案是在GirdView上面拼接一个Table,与girdView的头一致,用控件onclick来触发排序事件,暂时解决了这个问题,若果利用GirdView本身排序只改变头文本就好了,明天再去试试

支持(0) 反对(0) 不老的石头 | 园豆:96 (初学一级) | 2014-11-21 22:39
0

如果不是ajax,纯post方式,还有什么不可以改的?

收获园豆:2
arg | 园豆:1047 (小虾三级) | 2014-11-21 21:02
1

一种方式你可以按照楼上说的,添加背景图片,在排序的时候图片切换。另外一种方式增加一个纯文本,切换的时候换一下字符。你试一下很简单。

收获园豆:3
Mr.Brian | 园豆:1518 (小虾三级) | 2014-11-22 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册