我想用数据集创建一个gridview,我在databind之后隐藏了一些列。而且我还需要显示Descriptin列的前50个字符。我怎样才能做到这一点?这是我的代码
protected void grid_all_posts_DataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false;
e.Row.Cells[1].Visible = false;
// I want to display only substring in Gridview
e.Row.Cells[3].Text = e.Row.Cells[3].Text.ToString().Substring(0,50);
}
我希望很清楚
答案 0 :(得分:2)
您可以考虑使用CSS3 text-overflow
属性,而不是仅显示一定数量的字符。使用此属性,您可以指定max-width(以像素为单位),并显示一个elipses以指示可用的文本更多。
<div style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:150px">
<span title="Put your full text here">
This is some really long text. We want it to cut off after a specified number of pixels, and show the elipses to indicate that more text is available.
</span>
</div>
通过上面的示例,您可以将整个文本放在工具提示/标题中,当用户将鼠标悬停在文本上时可以查看该文本。
答案 1 :(得分:0)
此错误适用于SubString方法。 当字符串长度小于50子串上升异常
用这个替换你的上一行代码:
e.Row.Cells[3].Text = (e.Row.Cells[3].Text.Length>50) ? e.Row.Cells[3].Text.ToString().Substring(0,50) : e.Row.Cells[3].Text;
此代码首先检查字符串的长度,如果需要则调用子字符串。