如何截取11个字符串?

新闻标题不能太长了啊.
在ASP中可以用left(NewsTitle,11)
在.NET中怎么写啊?
请高手指点

 

前台代码
<%#DataBinder.Eval(Container.DataItem,"NewsTitle") %>
修改为
<%# myfunc(DataBinder.Eval(Container.DataItem,"NewsTitle")) %>
后台代码
protected string myfunc(object s)
  {
   return s.ToString().SubString(0,11);
  }
哈楼上的好象还得加个判断吧,判断它的长度是否长于11
public string myfunc(object s)
  {
   if(s.ToString().Length>11)
     {return s.ToString().SubString(0,11);}
    else
      {return s.ToString}
  }

 

用substring直接截了,有点粗鲁,不如在断开的地方加上 ...
方法如下
在后台代码里写这样一个方法
protected string cutstring(string inputstr,int len)
{
ASCIIEncoding asci=new ASCIIEncoding();
int strlen=0;
string str=null;
byte [] s=asci.GetBytes(inputstr);
for(int i=0;i<s.Length;i++)
{
if((int)s[i]==63)
{
strlen+=2;
}
else
{
strlen+=1;
}
try
{
str+=inputstr.Substring(i,1);
}
catch
{
break;
}
if(strlen>len)
break;
}
byte[] mybyte=Encoding.Default.GetBytes(inputstr);
if(mybyte.Length>len)
{
str+="…";
}
return str;
}
然后在datalist中写成如下的样子:
<%#  cutstring(DataBinder.Eval(Container.DataItem, "NewsTitle", "{0}"),20) %>

要是不想在后台定义函数也行,这样也可以:
<%# DataBinder.Eval(Container.DataItem,"NewsTitle").ToString().Length>10?DataBinder.Eval(Container.DataItem,"NewsTitle").ToString().Substring(0,10)+"...":DataBinder.Eval(Container.DataItem,"NewsTitle").ToString()%>

 

<%# (DataBinder.Eval(Container,"DataItem.NewsTitle")).ToString().Length >=11 ? (DataBinder.Eval(Container,"DataItem.NewsTitle")).ToString().PadRight(11).Substring(0,11) + "..." : (DataBinder.Eval(Container,"DataItem.NewsTitle")).ToString()%> 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值