我的网页要读取数据库表的信息,绑定了GridView控件,我想把“About”,也就是“点卡简介”这列的字符只显示20个,怎么截取?下面是代码,我用了母版页的:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>
<center>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1" Height="255px" Width="659px" PageSize="5">
<Columns>
<asp:BoundField DataField="CardId" HeaderText="游戏编号" SortExpression="CardId" />
<asp:BoundField DataField="CardPath" HeaderText="图片路径" SortExpression="CardPath" />
<asp:BoundField DataField="Title" HeaderText="点卡名称" SortExpression="Title" />
<asp:BoundField DataField="About" HeaderText="点卡简介" SortExpression="About" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllCardInfo"
TypeName="GraduationProject.BLL.CardInfoManager"></asp:ObjectDataSource>
</center>
</div>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>
<center>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1" Height="255px" Width="659px" PageSize="5">
<Columns>
<asp:BoundField DataField="CardId" HeaderText="游戏编号" SortExpression="CardId" />
<asp:BoundField DataField="CardPath" HeaderText="图片路径" SortExpression="CardPath" />
<asp:BoundField DataField="Title" HeaderText="点卡名称" SortExpression="Title" />
<asp:BoundField DataField="About" HeaderText="点卡简介" SortExpression="About" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllCardInfo"
TypeName="GraduationProject.BLL.CardInfoManager"></asp:ObjectDataSource>
</center>
</div>
</asp:Content>
解决方案 »
- 如何设计浮动的DIV或Panel?
- 谁帮我写个正则匹配一下这样形式的数据?有难度.谢谢!
- 请教如何从JAVASCRITP中直接调用服务器端CS文件中写的服务器方法?
- 简单问题:ASP.Net中如何实现这样的菜单
- DataGrid的问题,急~~~~~~~~~~~~~
- 把项目改了路径以后出现了如下错误,请帮忙
- 急!!!在线等,在DataGrid里面的模板列中动态的加载用户控件(*ascx),怎么没有显示也不出任何错误;有简单代码;谢谢!!
- 电影网站的多条件筛选怎么做,最好有全代码
- dataGrid模板列中怎样根据某列的值显示不同内容(VB)
- asp.net 一个动态创建控件的问题
- sql server 2008 sa 登陆失败 ,哪位大虾能帮忙解决一下,非常感谢!
- 100分请教京东商城购物车是javascript+cookie实现的吗???
/// 截取字符串方法
/// </summary>
/// <param name="strContent"></param>
/// <param name="sLen"></param>
/// <returns></returns>public static string CutString(string strContent, int sLen)
{
//超过规定长度加上“…” byte[] s1 = System.Text.Encoding.Default.GetBytes(strContent);
int tLen = sLen + 2; //规定长度加上“…”的总长度
//若转换为字节的字符串的长度小于指定的长度加上“...”的总长度则执行
if (s1.Length <= tLen)
{
return strContent;
}
else
{
strContent = System.Text.Encoding.Default.GetString(s1, 0, sLen) + "…"; ;
return strContent;
}
}
<HEAD>
<TITLE> New Document </TITLE>
<style type="text/css">
.aa{
display: block;
width: 200px;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
}
</style>
</HEAD>
<BODY>
<div class="aa">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
</BODY>
</HTML>
e.Row.Cells[3].Text.ToolTip = e.Row.Cells[3].Text;
if(int.Parse(e.Row.Cells[3].Text)>20)
e.Row.Cells[3].Text = e.Row.Cells[3].Text.SubString(0,20);
<ItemTemplate>
<%# Eval("About").ToString().SubString(0,20) + "…" %>
</ItemTemplate>
</asp:TemplateField>
if(e.Row.Cells[3].Text.Length>20)
<ItemTemplate>
<%# Eval("About").ToString().SubString(0,20) + "…" %>
</ItemTemplate>
</asp:TemplateField>
<ItemTemplate>
<%# (Eval("About").ToString().Length>25?Eval("About").ToString().SubString(0,25):Eval("About").ToString()) + "…" %>
</ItemTemplate>
</asp:TemplateField>
for each dr as datarow in DataTable1.rows
用SubString方法取20位再放进DataTable1里
next
然后DataTable绑定到GridView这是不修改前台代码的做法。修改前台代码可以考虑用Templatefield
也可以直接bind完了后替换...