gridview排序加箭头(二)

gridview排序的时候,在.NET里是不能被标注的,下面提供如下方法:主要是显示的时候进行了下判断,然后进行不同的排序,这样就给这个gridview加上了排序的箭头,有意思的是<font face='Webdings'>个样式,如果你对<font face='Webdings'>不是很了解,下面是提供的连接:

http://www.cnblogs.com/freeton/archive/2009/06/27/1512139.html

注意:

Aspx页面:

设置排序:SortExpression="zhiwei"(给相应的字段设置)

.cs

开始设置的默认的排序状态用ViewState进行设置,写在!IsPostBack下面。

主要用到:GVpositionrecods_RowCreated与GVpositionrecods_Sorting事件

 页面
ExpandedBlockStart.gif 代码
< asp:GridView AllowSorting = " True "  ID = " GVpositionrecods "  runat = " server "  PageSize = " 12 "
                    AllowPaging
= " True "  EmptyDataText = " 没有任何数据可以显示 "  Width = " 99% "  AutoGenerateColumns = " False "
                    OnRowDataBound
= " GVpositionrecods_RowDataBound "  OnSelectedIndexChanged = " GVpositionrecods_SelectedIndexChanged "
                    OnSelectedIndexChanging
= " GVpositionrecods_SelectedIndexChanging "  OnPageIndexChanging = " GVpositionrecods_PageIndexChanging "
                    OnRowCreated
= " GVpositionrecods_RowCreated "  OnSorting = " GVpositionrecods_Sorting " >
                    
< Columns >
                        
< asp:TemplateField HeaderText = " 职位 "  SortExpression = " zhiwei " >
                            
< ItemTemplate >
                                
< a href = ' throwseeen2.aspx?qiyeid=<%#Eval("qiyeid")%>&id=<%#Eval("ORDER_FORM_ID") %> ' >
                                    
<% #Eval( " zhiwei " %>
                                
</ a >
                            
</ ItemTemplate >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:TemplateField >
                        
< asp:TemplateField HeaderText = " 企业名称 "  SortExpression = " qiyeid " >
                            
< ItemTemplate >
                                
< a href = ' seeenlist.aspx?getidforen=<%#Eval("qiyeid")%> ' >
                                    
<% #Eval( " qiye " ) %>
                                
</ a >
                            
</ ItemTemplate >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:TemplateField >
                        
< asp:BoundField DataField = " COUNT "  HeaderText = " 人数 "  SortExpression = " COUNT " >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:BoundField >
                        
< asp:BoundField DataField = " STAR_TIME "  SortExpression = " STAR_TIME "  HeaderText = " 发布时间 "
                            DataFormatString
= " {0:yyyy-MM-dd} "  HtmlEncode = " False " >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:BoundField >
                        
< asp:BoundField DataField = " END_TIME "  SortExpression = " END_TIME "  HeaderText = " 结束时间 "
                            DataFormatString
= " {0:yyyy-MM-dd} "  HtmlEncode = " False " >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:BoundField >
                        
< asp:BoundField DataField = " flag "  HeaderText = " 状态 " >
                            
< ItemStyle HorizontalAlign = " Center "   />
                        
</ asp:BoundField >
                    
</ Columns >
                    
< AlternatingRowStyle BackColor = " #E2F8FF " ></ AlternatingRowStyle >
                    
< HeaderStyle HorizontalAlign = " Center "  BackColor = " #99CCFF " ></ HeaderStyle >
                    
< PagerStyle CssClass = " cssPager "   />
                
</ asp:GridView >

 默认排序设置

ExpandedBlockStart.gif 代码
  protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  (Session[ " student " ==   null )
        {
            Response.Write(
" <script>alert('页面已过期,请重新登录!');window.parent.frames.location.href='../Default.aspx'</script> " );
        }
        
else   if  ( ! IsPostBack  &&  Session[ " t_resume_info " !=   null )
        {
            ViewState[
" sortExp " =   " STAR_TIME " ; // 默认排序的字段
            ViewState[ " sortDir " =   " Desc " ; //  字段是安什么排序的
            
// 绑定数据源
            bind();

            
this .lbcontent.Visible  =   false ;
        }
        
else   if  (Session[ " t_resume_info " ==   null )
        {
            
this .lbcontent.Text  =   " 您还没有任何录取的信息 " ;
        }
    }

 绑定的数据源

ExpandedBlockStart.gif 代码
public   void  bind()
    {
        
// 得到对应的简历的ID,从SN里面查看值
        ccwu.Model.T_RESUME_INFO listTemp  =  (ccwu.Model.T_RESUME_INFO)Session[ " t_resume_info " ];
        ccwu.Model.T_ORDER_RESUME torderresume 
=   new  ccwu.Model.T_ORDER_RESUME();
        
int  id  =  Convert.ToInt32(listTemp.ID.ToString());
        
// 得到对应的简历的ID,从SN里面查看值


        ccwu.DAL.T_JOB jobdal 
=   new  ccwu.DAL.T_JOB();
        
string   where   =   " RESUME_INFO_ID=' "   +  id.ToString()  +   " ' " ;


        DataSet ds 
=  jobdal.getlistResume( where );
        DataView dv 
=   new  DataView(ds.Tables[ 0 ]);
        dv.Sort 
=  ViewState[ " sortExp " ].ToString()  +   "   "   +  ViewState[ " sortDir " ].ToString();
        GVpositionrecods.DataSource 
=  dv;
        
this .GVpositionrecods.DataBind();
        
if  ( this .GVpositionrecods.Rows.Count  >   0 )
        {

        }
        
else // 如果数据源是空的
        {
            
// 表头的设置
            GridViewRow row  =   new  GridViewRow( - 1 - 1 , DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
            
foreach  (DataControlField field  in   this .GVpositionrecods.Columns)
            {
                TableCell cell 
=   new  TableCell();
                cell.Text 
=  field.HeaderText;
                cell.Width 
=  field.HeaderStyle.Width;
                cell.Height 
=  field.HeaderStyle.Height;
                cell.ForeColor 
=  field.HeaderStyle.ForeColor;
                cell.Font.Size 
=  field.HeaderStyle.Font.Size;
                cell.Font.Bold 
=  field.HeaderStyle.Font.Bold;
                cell.Font.Name 
=  field.HeaderStyle.Font.Name;
                cell.Font.Strikeout 
=  field.HeaderStyle.Font.Strikeout;
                cell.Font.Underline 
=  field.HeaderStyle.Font.Underline;
                cell.BackColor 
=  field.HeaderStyle.BackColor;
                cell.VerticalAlign 
=  field.HeaderStyle.VerticalAlign;
                cell.HorizontalAlign 
=  field.HeaderStyle.HorizontalAlign;
                cell.CssClass 
=  field.HeaderStyle.CssClass;
                cell.BorderColor 
=  field.HeaderStyle.BorderColor;
                cell.BorderStyle 
=  field.HeaderStyle.BorderStyle;
                cell.BorderWidth 
=  field.HeaderStyle.BorderWidth;
                row.Cells.Add(cell);
            }
            TableItemStyle headStyle 
=   this .GVpositionrecods.HeaderStyle;
            TableItemStyle emptyStyle 
=  GVpositionrecods.EmptyDataRowStyle;
            emptyStyle.Width 
=  headStyle.Width;
            emptyStyle.Height 
=  headStyle.Height;
            emptyStyle.ForeColor 
=  headStyle.ForeColor;
            emptyStyle.Font.Size 
=  headStyle.Font.Size;
            emptyStyle.Font.Bold 
=  headStyle.Font.Bold;
            emptyStyle.Font.Name 
=  headStyle.Font.Name;
            emptyStyle.Font.Strikeout 
=  headStyle.Font.Strikeout;
            emptyStyle.Font.Underline 
=  headStyle.Font.Underline;
            emptyStyle.BackColor 
=  headStyle.BackColor;
            emptyStyle.VerticalAlign 
=  headStyle.VerticalAlign;
            emptyStyle.HorizontalAlign 
=  headStyle.HorizontalAlign;
            emptyStyle.CssClass 
=  headStyle.CssClass;
            emptyStyle.BorderColor 
=  headStyle.BorderColor;
            emptyStyle.BorderStyle 
=  headStyle.BorderStyle;
            emptyStyle.BorderWidth 
=  headStyle.BorderWidth;
            
// 空白行的设置
            GridViewRow row1  =   new  GridViewRow( 0 - 1 , DataControlRowType.EmptyDataRow, DataControlRowState.Normal);

            TableCell cell1 
=   new  TableCell();
            cell1.Text 
=   " 没有任何数据可以显示 " ;
            cell1.BackColor 
=  System.Drawing.Color.White;
            row1.Cells.Add(cell1);
            cell1.ColumnSpan 
=   6 ; // 合并列

            
if  ( this .GVpositionrecods.Controls.Count  ==   0 )
            {
                GVpositionrecods.Page.Response.Write(
" <script language='javascript'>alert('必须在初始化表格类之前执行DataBind方法并设置EmptyDataText属性不为空!');</script> " );
            }
            
else
            {
                GVpositionrecods.Controls[
0 ].Controls.Clear();
                
this .GVpositionrecods.Controls[ 0 ].Controls.AddAt( 0 , row);
                
this .GVpositionrecods.Controls[ 0 ].Controls.AddAt( 1 , row1);
            }
        }

    }

 关键代码

ExpandedBlockStart.gif 代码
  protected   void  GVpositionrecods_RowCreated( object  sender, GridViewRowEventArgs e)
    {
        
if  (e.Row.RowType  ==  DataControlRowType.Header) // 如果是表头,则执行如下操作
        {
            
foreach  (TableCell tc  in  e.Row.Cells)
            {
                
// 这种方法直接新加一个控件,也可以换成图片               
                 if  (tc.Controls.Count  >   0 ) // 这里要判断一下此时是不是已经生成了linkbutton
                {
                    
string  s1  =  ((LinkButton)tc.Controls[ 0 ]).Text;
                    
// 样式Webdings是123都有自己对应的图片
                    ((LinkButton)tc.Controls[ 0 ]).Text  =  s1.Replace(s1, s1  +   " <font face='Webdings'>5</font> " );
                    
// 倒序的样式
                     if  (tc.Controls.Count  >   0   &&  tc.Controls[ 0 ].GetType().ToString()  ==   " System.Web.UI.WebControls.DataControlLinkButton " )
                    {
                        
if  (((LinkButton)tc.Controls[ 0 ]).CommandArgument.ToString()  ==  ViewState[ " sortExp " ].ToString())
                        {
                            
string  s2  =  ((LinkButton)tc.Controls[ 0 ]).Text;
                            
if  (ViewState[ " sortDir " ].ToString()  ==   " Desc " )
                            {
                                ((LinkButton)tc.Controls[
0 ]).Text  =  s2.Replace( " 5 " " 6 " );
                            }
                        }
                    }
                }
            }
        }
    }

 当点击列头的时候

ExpandedBlockStart.gif 代码
protected   void  GVpositionrecods_Sorting( object  sender, GridViewSortEventArgs e)
    {
        
string  sPage  =  e.SortExpression;

        
if  (ViewState[ " sortExp " ].ToString()  ==  sPage)
        {
            
if  (ViewState[ " sortDir " ].ToString()  ==   " Desc " )
                ViewState[
" sortDir " =   " ASC " ;
            
else
                ViewState[
" sortDir " =   " Desc " ;
        }
        
else
        {
            ViewState[
" sortExp " =  e.SortExpression;
        }
        bind();
    }

 

转载于:https://www.cnblogs.com/muer/archive/2010/03/26/1697213.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值