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) + "... ";
}
}
}
这个事件就没有作用,那个高手指点一下
没有多少分了,理解万岁
问题解决。。。
在数据库读取的时候进行设置,只是读取自己设置的字数 展开
{
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) + "... ";
}
}
}
这个事件就没有作用,那个高手指点一下
没有多少分了,理解万岁
问题解决。。。
在数据库读取的时候进行设置,只是读取自己设置的字数 展开
3个回答
展开全部
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) + "... ";
}
}
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) + "... ";
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你的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) + "... ";
}
如果是这样的绑定方式的话
<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) + "... ";
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询