我用uc做了一个显示新闻标题,里面绑定用的Repeater  怎么在绑定Title 的时候显示长度一样的如果小于就用..表示

解决方案 »

  1.   

    取数据的时候substring下,然后Replace
      

  2.   

    自己在后台定义一个Substring(string title)方法,绑定的时候<%#Substring(Eval("Title"))%>
        protected string Substring(string title) 
        {
            if (title.Length>15)
            {
                title = title.Substring(0, 15) + "...";
            }
            return title;
        }
      

  3.   

    CSS控制 
    http://www.jb51.net/css/10022.html
      

  4.   

    他这个可以的 绑定的时候<%#Substring(Eval("Title").ToString())%>
      

  5.   

    2楼的方法
    绑定<%#Substring(Eval("Title").ToString())%>
      

  6.   

    <%#Eval("Title").ToString().Length>15 ? Eval("Title").SubString(0,15)+"..." : Eval("Title")%>
      

  7.   

    绑定的时候<%#formattitle(Eval("Title"))%>
    后台定义方法
    Public string formattitle(object o)
    {
    string s = o.ToString();
    if (s.Length>10)
    {
    s = s.substring(0,10);
    }
    return s;
    }
      

  8.   

    修改一下:
    s=s.substring(0,10)+"...";
      

  9.   

    System.Data.DataRowView”不包含名为“Title”的属性。 
    出现这个问题了
      

  10.   


    绑定的时候<%#formattitle(Eval("Title").ToString())%>
      

  11.   

    <%#Eval("Title").ToString().Length>15 ? Eval("Title").ToString().SubString(0,15)+"..." : Eval("Title")%>这个就行!
      

  12.   

    后台 数据是放在datatbel 里面的  出现了DataBinding:“System.Data.DataRowView”不包含名为“Title”的属性。
      

  13.   

    后台 数据是放在datatbel 里面的 出现了DataBinding:“System.Data.DataRowView”不包含名为“Title”的属性。 怎么解决?
      

  14.   

    直接用CSS另存为 htm文件看下效果:<style>
    span {display: block;width: 120px;overflow: hidden;/*注意不要写在最后了*/white-space: nowrap;-o-text-overflow: ellipsis;text-overflow: ellipsis;} 
    </style>
    <body>
    <span>测试是多少大啊沙发飒飒大是多少</span>
    </body>
      

  15.   


    <%#Eval("Name").ToString().Length>10?Eval("Name").ToString().Substring(0,10)+"..":Eval("Name") %>
      

  16.   

    title是字段名
    你要截取哪个就用哪个字段
      

  17.   

    SQL取数据的时候搞定
    case when LEN(title)>11 then LEFT(title,11)+'...' else title end as title
      

  18.   

    <%#(DataBinder.Eval(Container.DataItem,"website").ToString().Length>20)? (DataBinder.Eval(Container.DataItem,"website").ToString().Substring(0,20))+"...": (DataBinder.Eval(Container.DataItem,"website") )%>
    数据太长截取
      

  19.   

    用CSS加三行样式就可以实现的
      

  20.   

    +1
    这个截取,加上CSS样式控制,
    长度正好占满行宽,然后再截取。否则就不截取。
      

  21.   


    /// <summary>
            /// 截取长度为length的字符串,剩下部分以...表示
            /// 中文算两个字符
            /// </summary>
            /// <param name="str"></param>
            /// <param name="length"></param>
            /// <returns></returns>
            public static string CutString(string str, int length)
            {
                if (!String.IsNullOrEmpty(str))
                {
                    if (length <= 0)
                    {
                        throw new Exception("The argument length can't be zero or negative!");
                    }                int i = 0, j = 0;
                    foreach (char chr in str)
                    {
                        if ((int)chr > 127)
                        {
                            i += 2;
                        }
                        else
                        {
                            i++;
                        }
                        if (i > length)
                        {
                            str = String.Format("{0}...", str.Substring(0, j));
                            break;
                        }
                        j++;
                    }
                }
                else
                {
                    str = String.Empty;
                }            return str;
            }
      

  22.   

        
        /// <summary>
        /// 截取半角字符串(一个全角字符按2长度计算),当截取的位置只到全角字符的一半时不会取到该全角字符
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="startIndex">开始截取位置</param>
        /// <param name="length">要截取的字符串长度</param>
        /// <param name="fillStr">当字符串长度超过要截过的长度时追加到字符串末尾</param>
        /// <returns></returns>
        public static string CutDBCString(string str, int startIndex, int length, string fillStr)
        {
            if (string.IsNullOrEmpty(str))
            {
                return "";
            }
            StringBuilder builder = new StringBuilder();
            Encoding encoding = Encoding.GetEncoding("gb2312");
            int num = 0;
            int num2 = startIndex + length;
            foreach (char ch in str)
            {
                if (num >= startIndex)
                {
                    num += encoding.GetByteCount(ch.ToString());
                    if (num <= num2)
                    {
                        builder.Append(ch);
                        goto Label_00FB;
                    }
                    int dBCLength = GetDBCLength(fillStr);
                    int num4 = 0;
                    while ((builder.Length > 0) && (num4 < dBCLength))
                    {
                        int num5 = builder.Length - 1;
                        string s = builder[num5].ToString();
                        num4 += encoding.GetByteCount(s);
                        builder.Remove(num5, 1);
                    }
                    builder.Append(fillStr);
                    break;
                }
                num += encoding.GetByteCount(ch.ToString());
            Label_00FB: ;
            }
            return builder.ToString();
        }    public static int GetDBCLength(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                return 0;
            }
            return Encoding.GetEncoding("gb2312").GetBytes(str).Length;
        }
      

  23.   


    //调用的时候
    string str=CutDBCString("楼主我要分,快给分吧", 0, 10, "...")
    //输出结果为:楼主我...