gridview不自动换行
实现:gridview控件中显示的文本不自动换行,隐藏超出宽度.我先提问了一次,可惜得到的答案不太清晰.有说CSS实现的,有说后台代码实现的.都说的不够清楚.看了半天还是...
实现:gridview控件中显示的文本不自动换行,隐藏超出宽度.
我先提问了一次,可惜得到的答案不太清晰.
有说CSS实现的,有说后台代码实现的.
都说的不够清楚.
看了半天还是没搞定.
麻烦高手详细说下
1楼的,看清楚,我都说了搞了半天没搞清楚.你还发个一样的上来干嘛.
麻烦解释下行不.
也许你这样说别人能看懂,但很抱歉,我水平不够,真的解决不了我的问题 展开
我先提问了一次,可惜得到的答案不太清晰.
有说CSS实现的,有说后台代码实现的.
都说的不够清楚.
看了半天还是没搞定.
麻烦高手详细说下
1楼的,看清楚,我都说了搞了半天没搞清楚.你还发个一样的上来干嘛.
麻烦解释下行不.
也许你这样说别人能看懂,但很抱歉,我水平不够,真的解决不了我的问题 展开
8个回答
展开全部
首先是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) + "";
}
}
}
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) 的情况类似....
祝你好运~!!
第一步,在GRIDVIEW 上右击勾选"显示智能标记"
第二步,点击"编辑列"
第三步,在左边"选定的字段"中选中你不想行换行的字段
第四步,在右边的"BoundFiled属性"里展开
"样式"--"ItemStyle"--"Wrap"改成false
标题(HeadStyle) 的情况类似....
祝你好运~!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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","方法");
编辑列 属性 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","方法");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用这个方法可以可以设置字符串长度,而且中文英文都可以用得。
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 "...";
}
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 "...";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过CSS实现
在head中间
添加如下css
<style type='text/css'>
table tr td{
WORD-BREAK: break-all;
}
</style>
如果不可以的话
找到你那需要换行的列上看看标签是什么,换成标签名即可
在head中间
添加如下css
<style type='text/css'>
table tr td{
WORD-BREAK: break-all;
}
</style>
如果不可以的话
找到你那需要换行的列上看看标签是什么,换成标签名即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询