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;
}
按照网上说的说法在前台里加代码可是却出错了,实在不知道怎么弄才向大家求助.希望大家能给个正确运行的方法最好是在后台写的。 展开
<%@ 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;
}
按照网上说的说法在前台里加代码可是却出错了,实在不知道怎么弄才向大家求助.希望大家能给个正确运行的方法最好是在后台写的。 展开
展开全部
问题解决了,我现在用游客身份将自己的问题答案贴上来.希望能帮上遇到跟我同样问题的人.
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) + "... ";
}
}
}
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) + "... ";
}
}
}
展开全部
在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是你上面写的截取方法。
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
页面绑定
<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个字符自动以……代替
<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个字符自动以……代替
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
e.Row.Cells[1].ToolTip = e.Row.Cells[1].Text;
e.Row.Cells[1].Text=charcut(e.Row.Cells[1].Text,20)
e.Row.Cells[1].Text=charcut(e.Row.Cells[1].Text,20)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询