ASP.NET Gridview超出长度用..代替,使用tooltip(title)提示显示详细信息

ASP.NET Gridview单元格字段值超出固定长度用.....代替,并使用TOOLTIP显示详细信息的实现方法很多,以下列举三种。
http://blog.csdn.net/chinajiyong/article/details/7389998
第一种:
在Gridview的事件RowDataBound中添加如下代码:

[csharp] view plaincopy
  1. for (int i = 0; i < e.Row.Cells.Count; i++)//获取总列数      
  2.        {      
  3.            //如果是数据行则添加title      
  4.            if (e.Row.RowType == DataControlRowType.DataRow)      
  5.            {//设置title为gridview的head的text      
  6.                e.Row.Cells[i].Attributes.Add("title", Gridview1.HeaderRow.Cells  
  7.   
  8.   
  9. [i].Text.ToString().Trim());      
  10.            }      
  11.        }      
  12.    }      
  13.    if (e.Row.RowIndex > -1)      
  14.    {      
  15.        string tmp =((HyperLink) e.Row.FindControl("HypLinkTitle")).Text;       
  16.        if (tmp.Length > 3)      
  17.        {      
  18.            ((HyperLink)e.Row.FindControl("HypLinkTitle")).Text = tmp.Substring(0, 3) + "…";      
  19.            ((HyperLink)e.Row.FindControl("HypLinkTitle")).Attributes.Add("title", tmp);//以tooptip的方式显示全部内容         
  20.        }      
  21.    }    

 

第二种:用三元运算符!截取字符串,当超过你指定的长度后截取,绑定时候用三目运算处理。代码如下:

 

[csharp] view plaincopy
  1. <%# Eval("title").ToString().length>100?Eval("title").ToString().length(0,100)+"...":Eval("title").ToString()%>  

 

 

第三种:最简单的可以通过CSS来设置省略号,鼠标移上全部显示用ToolTip,分3步来实现,代码如下:

1.设置CSS

 

[csharp] view plaincopy
  1. <style type="text/css">  
  2. .mlength  
  3. {  
  4. display: block;  
  5. width: 100px;  
  6. overflow: hidden;    
  7. white-space: nowrap;  
  8. -o-text-overflow: ellipsis;  
  9. text-overflow: ellipsis;  
  10. }  
  11. </style>  

 

 

2.设置GridView的某一字段为模板列并设置css,如:

[csharp] view plaincopy
  1. <asp:Label ID="Label1" runat="server" Text='<%# Eval("字段") %>'  CssClass="mlength"></asp:Label>  


3.后台设置ToolTip:

[csharp] view plaincopy
  1. protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)  
  2. {  
  3. if (e.Row.RowType == DataControlRowType.DataRow)  
  4. {  
  5.    ((Label)e.Row.Cells[0].FindControl("Label1")).ToolTip = ((Label)e.Row.Cells[0].FindControl("Label1")).Text;  
  6. }  
  7. }  

 

当然,ToolTip也可以在前台设置,代码如下:

 

[csharp] view plaincopy
  1. <asp:Label ID="Label1" runat="server" Text='<%# Eval("字段") %>' CssClass="mlength"  ToolTip='<%# Eval("字段") %>'></asp:Label>  
posted @ 2013-03-23 22:49  doscn  阅读(820)  评论(0)    收藏  举报