日期:2014-05-20  浏览次数:20491 次

如何限制文章标题长度?
如题,要求是在vs2005   环境下,还有sql   server2005作为数据库。

------解决方案--------------------
搂住这个应该可以用吧 !

protected string CutString(string str,int length)
{
string newString= " ";
if(str!= " ")
{
if(str.Length> length)
{
newString=str.Substring(0,length)+ "... ";
}
else
{
newString=str;
}
}
return newString;
}

调用方法:
string str= "根据需要对字符串进行指定长度的截取 ";
str=CutString(str,10);
如果你在asp.net中,想在数据列表控件(如:DataGrid,DataList,Repeater等)中使用,实现类似上面所描述的新闻列表的效果,你可以这样写:
<%# CutString(DataBinder.Eval(Container.DataItem, "NewTitle ").ToString(),16) %>

------解决方案--------------------
#region 截短字串的函数,分区中英文
/// <summary>
/// 截短字串的函数
/// </summary>
/// <param name= "mText "> 要加工的字串 </param>
/// <param name= "byteCount "> 长度 </param>
/// <returns> 被加工过的字串 </returns>
public static string Left(string mText, int byteCount)
{
if (byteCount < 1) return mText;

if (System.Text.Encoding.Default.GetByteCount(mText) <= byteCount)
{
return mText;
}
else
{
byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText);
byte[] newBytes = new byte[byteCount - 4];

for (int i = 0; i < byteCount - 4; i++)
{
newBytes[i] = txtBytes[i];
}

return System.Text.Encoding.Default.GetString(newBytes) + "... ";
}
}
#endregion