GridView中HyperLinkField怎么限制字数的显示 15

protectedvoidGridView2_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowT... protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//不遍历行头和行尾
{

e.Row.Cells[1].ToolTip = e.Row.Cells[1].Text;

if (e.Row.Cells[1].Text.Length > 12)
{

e.Row.Cells[1].Text = e.Row.Cells[1].Text.Substring(0, 12) + "... ";

}
}
}
这个事件就没有作用,那个高手指点一下
没有多少分了,理解万岁
问题解决。。。
在数据库读取的时候进行设置,只是读取自己设置的字数
展开
 我来答
lxl736321739
2013-03-28
知道答主
回答量:33
采纳率:100%
帮助的人:7万
展开全部
GridView中HyperLinkField的字数这样控制是没有效果的,里面的链接生成到Html中是作为一个<a></a>标签存在的,要在RowDataBound中控制HyperLinkField中的字数,需要这样:

if (e.Row.RowType == DataControlRowType.DataRow)//不遍历行头和行尾
{
e.Row.Cells[1].ToolTip = ((HyperLink)e.Row.Cells[1].Controls[0]).Text;

if (((HyperLink)e.Row.Cells[1].Controls[0]).Text.Length > 12)
{
((HyperLink)e.Row.Cells[1].Controls[0]).Text =((HyperLink)e.Row.Cells[1].Controls[0]).Text.Substring(0, 12) + "... ";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pengjianhang
2010-03-19 · TA获得超过296个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:370万
展开全部
不知道你的gridview里面是怎么绑定数据的, 如果是在里面放置了控件的话,就必须去找到这个控件,然后再为这个控件赋值。

如果是这样的绑定方式的话
<ItemTemplate>
<asp:Label ID="Label1" runat="server"></asp:Label>
</ItemTemplate>

示例:
Label x=(Label)e.Row.Cells[1].FindControl("Label1");
x.ToolTip = x.Text;
if (x.Text.Length > 12)
{
x.Text = x.Text.Substring(0, 12) + "... ";
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lljaccp
2010-03-19 · 超过17用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:32.3万
展开全部
//DataStr 需要被截取的字符串,StrLenght 需要截取的长度
public string CellLenghtCtr(object DataStr, int StrLenght)
{
StrLenght = Utinity.User.GetStringLength(DataStr.ToString().Trim(), StrLenght);
if (DataStr.ToString().Length > StrLenght)
{
StrLenght = StrLenght - 3;
return DataStr.ToString().Substring(0, StrLenght) + "...";
}
return DataStr.ToString();
}
/// <summary>
/// 获取字符串真实长度(中英文数字标点)
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public static int GetStringLength(string content, int maxLength)
{
ASCIIEncoding En = new ASCIIEncoding();
Byte[] B = En.GetBytes(content);
int Length = 0;
int count = 0;
for (int i = 0; i <= B.Length - 1; i++)
{
if (B[i] == 63)
{
Length += 1;
}
Length += 1;
count++;

if (Length >= maxLength)
break;
}
return count;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式