用DataList绑定新闻标题时,
如新闻标题超过某长度则用“...”来表示,
这个效果怎样实现??
还有另外一个问题就是我要DataList只可以显示5个新闻标题,哪又要加什么设定?
请教各位大哥大姐!

解决方案 »

  1.   

    <%# DataBinder.Eval(Container.DataItem,"title").ToString().Length>25?DataBinder.Eval(Container.DataItem,"title").ToString().Substring(0,25) + "...":DataBinder.Eval(Container.DataItem,"title") %>不知道你第二个是什么意思,你查询的时候取5条不就可以了~~
      

  2.   

    第二个我明白什么意思
    就是显示前五条新闻记录对不
    如果是这样的话
    就把sql语句改一下
    select top 5 * from 表 order by id desc 这样就可以了
      

  3.   

    写一个这样的函数,取返回字符串就可以了
    private static string intercept(string strTemp)
    {
    string strText = strTemp;
    int intCount = Constants.intNumber;
    int intLength = strText.Length;
    if(intLength <intCount)
    {return strText;
    }
    else
    {
    return strText.Remove(intCount,intLength-intCount)+"......";}
    }
      

  4.   

    前台:
    <%# CutString(DataBinder.Eval(Container.DataItem,"Name1").ToString(),37) %>
    后台:
    #region 按字符串实际长度截取定长字符窜
    /// <summary>
    /// 按字符串实际长度截取定长字符窜
    /// </summary>
    /// <param name="str">原字符串</param>
    /// <param name="length">要截取的长度</param>
    /// <returns>string型字符串</returns>
    public string CutString(string str, int length)
    {
    string delsqace=str.Trim();
    int i = 0, j = 0;
    foreach(char chr in delsqace)
    {
    if((int)chr > 127)
    {
    i += 2;
    }
    else
    {
    i ++;
    }
    if (i > length)
    {
    delsqace = delsqace.Substring(0, j) + "...";
    break;
    }
    j ++;
    }
    return delsqace; }
    #endregion