GridView中显示的列内容里字符太长,怎样显示截取部分字符并以"..."结尾?补充里是我的前台和后台代码

//=============前台页面(用了母板页)==========<%@PageLanguage="C#"MasterPageFile="~/MasterPage.... //=============前台页面(用了母板页)==========
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="equ_Manage.aspx.cs" Inherits="FacilityManage" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<style type="text/css">
.GVAll
{
font-size:11pt;
}

.GridViewHeaderStyle
{
font-weight:lighter; background-color:LightBlue;
}

</style>
<asp:GridView ID="GV" CssClass="GVAll" runat="server" AllowPaging="True" onpageindexchanging="pagechanging"><HeaderStyle CssClass="GridViewHeaderStyle" /></asp:GridView>
</asp:Content>

//==================后台方法代码==================

public void GridViewBind()
{
GV.AutoGenerateColumns = false;

GV.Columns.Clear();

BoundField Equ_name = new BoundField();
Equ_name.DataField = "Equ_name";
Equ_name.HeaderText = "设备名";
GV.Columns.Add(Equ_name);

BoundField Purpose = new BoundField();
Purpose.DataField = "Purpose";
Purpose.HeaderText = "用途";
GV.Columns.Add(Purpose);

GV.DataSource = this.DataSource;

GV.DataBind();
}
//返回固定长度的并带...的字符串
public static string charcut(string str, int len)
{
string objStr = str;
if (str.Length > len)
{
objStr = str.Substring(0, len) + "...";
}
return objStr;
}
按照网上说的说法在前台里加代码可是却出错了,实在不知道怎么弄才向大家求助.希望大家能给个正确运行的方法最好是在后台写的。
展开
 我来答
琦夏侯岚5o
2011-08-23 · TA获得超过5.9万个赞
知道大有可为答主
回答量:2.8万
采纳率:0%
帮助的人:3990万
展开全部
问题解决了,我现在用游客身份将自己的问题答案贴上来.希望能帮上遇到跟我同样问题的人.
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//当前行是否是数据绑定行(过滤标题行和序号行等非数据绑定行)
{
e.Row.Cells[3].ToolTip = e.Row.Cells[3].Text;
if (e.Row.Cells[3].Text.Length > 35)
{
e.Row.Cells[3].Text = e.Row.Cells[3].Text.Substring(0, 35) + "... ";
}
}
}
华佗之父
2011-08-22 · TA获得超过1241个赞
知道小有建树答主
回答量:1623
采纳率:0%
帮助的人:1119万
展开全部
在GridView1_RowDataBound这个事件里面写代码
e.Row.Cells[1].ToolTip = e.Row.Cells[1].Text;
e.Row.Cells[1].Text=charcut(e.Row.Cells[1].Text,20);

上面两行代码就搞定了。长度超过20,显示就截取到20,后面是…,鼠标放在上面就显示全部了。
其中 1是你要显示的列索引。
charcut是你上面写的截取方法。
更多追问追答
追问
为什么除了0以外的索引都会报错而且当索引为0时显示是空的?报错页面提示:"指定的引數超出有效值的範圍。參數名稱: index "
追答
Q 我  450414688
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老郭生活杂谈
2011-08-22
知道答主
回答量:33
采纳率:0%
帮助的人:7.8万
展开全部
页面绑定
<asp:TemplateField ItemStyle-Width="22%" HeaderText="卡号">
<ItemTemplate>
<a href="javascript:void(0)" >
<%# Eval("YG_kardcode").ToString().Length > 10? Eval("YG_kardcode").ToString().Substring(0, 10) + "..." : Eval("YG_kardcode").ToString()%>
</a>
</ItemTemplate>
</asp:TemplateField>
超出10个字符自动以……代替
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魏存启
2011-08-22
知道答主
回答量:45
采纳率:0%
帮助的人:17.9万
展开全部
e.Row.Cells[1].ToolTip = e.Row.Cells[1].Text;
e.Row.Cells[1].Text=charcut(e.Row.Cells[1].Text,20)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式