DataGrid控件中如何截断多余的字符?

hy_radium 2003-10-17 06:35:44
1、Datagrid控件显示一新闻列表,标题如果多于30个字符,则自动截断,并加入省略号,请问如何实现?
2、除了用数据WEB控件显示新闻,还可以有几种方法显示新闻列表?
小弟先后用过在页面中建一label控件,然后
while(dr.read())
{
label.text=server.de****(***********);
}
来实现标题显示,但每次循环后,label中存的都是最后一个数值。
也用过response.write来做,但都没有成功。盼高手指点一二。在线等待。急!
...全文
44 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
houjianxun 2003-10-18
  • 打赏
  • 举报
回复
string str = (string)DataBinder.Eval(e.Item.DataItem,"Title");

中的Title是需要绑定的数据项
houjianxun 2003-10-18
  • 打赏
  • 举报
回复
也可以用DataGrid中的ItemDataBound事件操作

下面的C#大小写有问题,自己改一下吧

/// <summary>
/// 当有下属论坛分类时发生事件
/// </summary>
/// <param name="sender"> 事件的源 </param>
/// <param name="e"> 事件处理程序接收一个 <see cref="System.Web.UI.WebControls.DataListItemEventArgs"/> 类型的参数,它包含与此事件相关的数据 </param>
private void ID_Board_DataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem )
{
string str = (string)DataBinder.Eval(e.Item.DataItem,"Title");
if(str.length>10)
{
str = str.substring(0,10)+"...";
}
e.Item.Cells[0].Text = str;
}

}
okodoov 2003-10-18
  • 打赏
  • 举报
回复
学习
孟子E章 2003-10-18
  • 打赏
  • 举报
回复
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD
Abac 2003-10-17
  • 打赏
  • 举报
回复
问题1、
spring_ok(SpringDotNet) 说的是我常用的,对绑定的数据进行转换的有效方法;

问题2、
新闻列表当然是用数据列表最方便,别的几乎不用考虑,除非有特殊需求。
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
while(dr.read())
{
label.text=server.de****(***********);
}

改成
while(dr.read())
{
label.text+=server.de****(***********);
}

要累加才可以
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
用模版比较方便
webdiyer 2003-10-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2364/2364661.xml?temp=2.611941E-02
kwklover 2003-10-17
  • 打赏
  • 举报
回复
.aspx:
<span runat="server" id="NewsList"></span>
.aspx.vb:
dim strHtml as string
while dr.read()
strHtml+=dr.item("xxx")
end while
NewsList.InnerHtml=strHtml
hy_radium 2003-10-17
  • 打赏
  • 举报
回复
哦,原来是用模板啊!谢谢,我先试试。欢迎大家提供不同的意见。
阿拉丁 2003-10-17
  • 打赏
  • 举报
回复
1、select NewID,NewTitle
case when Length(NewTitle) <= 30 then NewTitle
else Left(NewTitle,30) + "..."
end as ShortTitle;
from YourNewsTable;
2、 while(dr.read())
{
label.text += server.de****(***********) + "<br>" ;
}
zyg9108 2003-10-17
  • 打赏
  • 举报
回复
第一个问题:
构造DataTable时对你要显示的列作处理:
if (len(data)>30)
data=left(data,30) + "……"
第二个问题:
while(dr.read())
{
label.text=label.text + chr(10) + chr(13) + server.de****(***********);
}
spring_ok 2003-10-17
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="Subject">
<ItemTemplate>
<%# TransformSubject(DataBinder.Eval(Container.DataItem, "Subject")) %>
</ItemTemplate>
</asp:TemplateColumn>

.aspx.cs中:

public string TransformSubject(object subject)
{
string strSubject = subject.ToString();
if (strSubject.Length <= 20)
{
return strSubject;
}
else
{
strSubject = strSubject.SubString(0, 20) + "....";
return strSubject;
}
}

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧