截取字符串

 做的新闻发布系统中需要用到这个:

1. 在源代码中截取:

代码如下:

<asp:HyperLink ID="hltitle" runat="server" Width="340px" Text=’<%# Eval("NewsName").ToString().Length>25?Eval("NewsName").ToString().Substring(0,25)+"...":Eval("NewsName") %>’  NavigateUrl=’<%#"NewsShow2.aspx?NewsID="+DataBinder.Eval(Container.DataItem,"NewsID")%>’>HyperLink</asp:HyperLink>  


注意那个三元运算符 “?:”意思就是如果长度大于25,就截取前25个,如果小于或等于25就全部取出。
如果不加这个运算符的话,假如字符长度没有所想要截取的长度那么长,就会报错。
在Gridview中要注意,要插入的项是TemplateField才能做截取,不能是单纯的HyperLink。

<asp:TemplateField HeaderText="新闻标题">   
    <ItemTemplate>   
       
        <%# (Eval("NewsName").ToString().Length>8?Eval("NewsName").ToString().Substring(0,8):Eval("NewsName").ToString()) + "…" %>                   
       
    </ItemTemplate>   
</asp:TemplateField>  


还有一个必须要注意的,在网上,我注意到很多人都写成了ToString().SubString(0,8)或者Tostring().Substring()之类的代码,要注意C#的大小写敏感,如果函数写错了,就会在运行时报错。    

 

 

2. 在 cs 文件中截取:

/// <summary>
    
///  将指定字符串按指定的长度进行剪切
    
/// </summary>
    
/// <param name="oldStr">需要裁剪的字符串</param>
    
/// <param name="maxLength">字符串的最大长度</param>
    
/// <param name="endWith">超过长度的后缀</param>
    
/// <returns>如果超过长度,返回截断后的新字符串加上后缀,否则,返回原字符串</returns>
    public static string StringTruncat(string oldStr, int maxLength, string endWith)
    {
        
if (string.IsNullOrEmpty(oldStr))
        {
            
//throw new NullReferenceException(" 原字符串不能为空 ");
            return oldStr + endWith;
        }
        
if (maxLength < 1)
        {
            
throw new Exception(" 返回字符串的长度必须大于[0] ");
        }

        
if (oldStr.Length > maxLength)
        {
            
string tmpStr = oldStr.Substring(0, maxLength);
            
if (string.IsNullOrEmpty(endWith))
            {
                
return tmpStr;
            }
            
else
            {
                
return tmpStr + endWith;
            }
        }
        
return oldStr;
    }

posted @ 2013-01-15 16:46  觉信  阅读(1583)  评论(1编辑  收藏  举报