首先是GridView 中的文本不自动换行,隐藏超出宽度部分,可以使用以下函数:
return (str.Length > num) ? str.Substring(0, num) + "..." : str;
int num 是你要截取的字符串的长度,然后把这个函数写在行绑定数据的事件中即可。
要是要使GridView里的内容自动换行的话,使用以下办法
在页面加入属性:style =" word-break :break-all ; word-wrap:break-word " (table或div 等的属性里)
或设置
protected void GridView1_DataRowBound(object o, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//设置要换行的模板列
e.Row.Cells[0].Attributes.Add("style", "word-break :break-all ; word-wrap:break-word");
e.Row.Cells[1].Attributes.Add("style", "word-break :break-all ; word-wrap:break-word");
}
}
或者
如何实现:GridView 控件中显示的文本不自动换行,隐藏超出宽度部分
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="linkbNewsTitle" runat="server" Text='<%# Bind("ch_Remark") %>' ToolTip='<%# Bind("ch_Remark") %>'>
</asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="300" />
</asp:TemplateField>
protected void gvNewsManage_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((LinkButton)e.Row.FindControl("linkbNewsTitle") != null)
{
LinkButton linkbTitle = (LinkButton)e.Row.FindControl("linkbNewsTitle");
if (linkbTitle.Text.Length > 10)
{
linkbTitle.Text = linkbTitle.Text.Substring(0, 9) + "";
}
Label lblinknewID = (Label)e.Row.FindControl("ltgvnid");
// linkbTitle.PostBackUrl = "EditNewsContent.aspx?ID=" + lblinknewID.Text;
}
}
//==========================================
protected void gvNewsManage_RowDataBound(object sender, GridViewRowEventArgs e)
{
string strValue = e.Row.Cells[18].Text.ToString();
if (strValue != null)
{
if (strValue.Length > 9)
{
e.Row.Cells[18].Text = strValue.Substring(0, 9) + "";
}
}
}
或者
首先确定你的GRIDVIEW 已经绑定数据了
第一步,在GRIDVIEW 上右击勾选"显示智能标记"
第二步,点击"编辑列"
第三步,在左边"选定的字段"中选中你不想行换行的字段
第四步,在右边的"BoundFiled属性"里展开
"样式"--"ItemStyle"--"Wrap"改成false
标题(HeadStyle) 的情况类似....