GridView中文本过长用CSS实现截取隐藏文字(asp.net)

  • Post author:
  • Post category:其他


有时候文字太长时会影响页面的布局,需要把后面的隐藏掉,只显示省略号(…),对于div标签比较容易

如:

.content

{

width:100px;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;/*以省略号替代截除部分*/

}

<div class=”content”>隐藏过长的文字</div>

而对于table和GridView却不能实现,其实GridView最终也是解析为table在页面显示,所以用GridView为例。

1、定义如下CSS样式

.tableCSS

{

table-layout: fixed;

}

.content

{

width:100%;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;/*以省略号替代截除部分*/

}

2、为GridView设置样式

<asp:GridView CssClass=”tableCSS”   必需要为整个table或GridView添加样式 且table-layout:的值必需为fixed

对于要隐藏的列添加样式,如

<asp:BoundField DataField=”MainTitle” HeaderText=”内容”>

<temStyle Width=”42%” CssClass=”content” />

<HeaderStyle Width=”42%” />

</asp:BoundField>

由于样式table-layout: fixed;会把各列都设为相同的宽度,所以需要为每列添加类似设置<HeaderStyle Width=”42%” />,以确定每列的宽

完成上面的工作即可看到效果,由于内容被隐藏了部分,想要当鼠标放上去时显示以提示的方式查看时,在GridView的RowDataBound事件中添加如下代码即可

if (e.Row.RowType == DataControlRowType.DataRow)

{

e.Row.Cells[5].ToolTip = e.Row.Cells[5].Text;   //内容

}