gridview不自动换行

实现:gridview控件中显示的文本不自动换行,隐藏超出宽度.我先提问了一次,可惜得到的答案不太清晰.有说CSS实现的,有说后台代码实现的.都说的不够清楚.看了半天还是... 实现:gridview控件中显示的文本不自动换行,隐藏超出宽度.

我先提问了一次,可惜得到的答案不太清晰.
有说CSS实现的,有说后台代码实现的.
都说的不够清楚.
看了半天还是没搞定.
麻烦高手详细说下
1楼的,看清楚,我都说了搞了半天没搞清楚.你还发个一样的上来干嘛.
麻烦解释下行不.
也许你这样说别人能看懂,但很抱歉,我水平不够,真的解决不了我的问题
展开
 我来答
xsshn000
推荐于2016-06-01 · 超过25用户采纳过TA的回答
知道答主
回答量:306
采纳率:0%
帮助的人:93.4万
展开全部
首先是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) + "";
}
}
}
zaijing001
2008-09-17 · TA获得超过264个赞
知道答主
回答量:159
采纳率:0%
帮助的人:215万
展开全部
首先确定你的GRIDVIEW 已经绑定数据了

第一步,在GRIDVIEW 上右击勾选"显示智能标记"

第二步,点击"编辑列"

第三步,在左边"选定的字段"中选中你不想行换行的字段

第四步,在右边的"BoundFiled属性"里展开
"样式"--"ItemStyle"--"Wrap"改成false

标题(HeadStyle) 的情况类似....

祝你好运~!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cenluzszs
2008-09-16 · TA获得超过190个赞
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:52.7万
展开全部
GridView 内置的就有这个功能,

编辑列 属性 ItemStyle 里面的宽度设定一下

在aspx页的源里面找到绑定列直接用函数搞定

static public string GetSubString(string str, int num)
{
#region
return (str.Length > num) ? str.Substring(0, num) + "..." : str;
#endregion
}

int num 是你要截取的字符串的长度 ,

在cs文件中用 给这列注册一个客户端事件

注册的方法

控件id.属性.Add("onmouseover","方法");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goorcome
2008-09-16 · TA获得超过453个赞
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:524万
展开全部
用这个方法可以可以设置字符串长度,而且中文英文都可以用得。
int lng设置显示的字节的长度。中文是两个字节,英文是一个字节

绑定完之后你再用这个方法循环那一列就可以了。
public static string getS(string s, int lng)
{
string temp = s;
if (Encoding.Default.GetByteCount(temp) <= lng)
{
return temp;
}
for (int i = 1; i < s.Length; i++)
{
temp = s.Substring(0, i);
if (Encoding.Default.GetByteCount(temp) > lng - 3)
{
//break;
return s.Substring(0,i-1) + "...";
}
}
return "...";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯狂代码
2008-09-16 · TA获得超过264个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:523万
展开全部
通过CSS实现
在head中间
添加如下css
<style type='text/css'>
table tr td{
WORD-BREAK: break-all;
}
</style>

如果不可以的话

找到你那需要换行的列上看看标签是什么,换成标签名即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式