<asp:Repeater ID="RepEventTop" runat="server">
       <HeaderTemplate> <table></HeaderTemplate>
           <ItemTemplate>
               <tr>
                  <td style="width:60%;" align="left">
                     <%#DataBinder.Eval(Container.DataItem,[color=#0000FF]"Title" )%>[/color]
                  </td>
                  <td style="width:40%;" align="right">
                     <%#Databinder.Eval(container.DataItem ,"PointCount") %>
                  </td>
               </tr>
           </ItemTemplate>
        <FooterTemplate></table></FooterTemplate>                                       
</asp:Repeater>这是绑定的repeater控件
如果 绑定的Title列 的标题内容太长 会改变页面的布局
现在我想截取绑定的Title列(显示的字符串长度不超过20),应该怎么写代码 

解决方案 »

  1.   

      /// <summary>
        /// 标题长度过长时省略处理
        /// </summary>
        /// <param name="text"></param>
        /// <param name="len"></param>
        /// <returns></returns>    protected string ShotCutText(string strText, int len)
        {
            if (strText.Length > len && len > 1)
            {
                return strText.Substring(0, len - 1) + "...";
            }
            return strText;
        }.aspx
     <%#  ShotCutText(DataBinder.Eval(Container, "DataItem.Title").ToString(),20) %>
      

  2.   

    DataBinder.Eval(Container.DataItem,[color=#0000FF]"Title" ).ToString().Length>20?
    DataBinder.Eval(Container.DataItem,[color=#0000FF]"Title" ).ToString().SubString(0,20):
    DataBinder.Eval(Container.DataItem,[color=#0000FF]"Title" )
      

  3.   

     <%#Eval("Title").ToString().Substring(0,20) %>
      

  4.   


       public static string CutString(string inputString, int len)
        {
            Encoding encoding = Encoding.GetEncoding("GB2312");
            byte[] buffer = encoding.GetBytes(inputString);
            if (buffer.Length <= len)
                return inputString;
            else
                return encoding.GetString(buffer, 0, len);
        }
      

  5.   

    <%#Databinder.Eval(container.DataItem ,"PointCount").Substring(0,20) %> 
      

  6.   

    在CS页面里面写个方法
    public string Sub(string index)
    {
     string titles;
    if(index>20)
    {
    titles=index.substring(0,20)+"...";
    }
    else
    {
    titles=index;
    }
    }
    然后在REapter 里面用这个方法绑定就OK了这个很简单
      

  7.   

    写一个方法:
    public static string CutString(string str, int length)
        {
            if (str == "")
            {
                str = "没有信息";
            }
            else
            {
                int i = 0, j = 0;
                foreach (char chr in str)
                {
                    if ((int)chr > 127)
                    {
                        i += 2;
                    }
                    else
                    {
                        i++;
                    }
                    if (i > length)
                    {
                        //str = str.Substring(0, j);
                        str = str.Substring(0, j) + "...";
                        break;
                    }
                    j++;
                }        }
            return str;
        }
      

  8.   

        ///   <summary>  
        ///   截取字符串(适用于中英文混合)  
        ///   </summary>  
        ///   <param   name="str">原字符串</param>  
        ///   <param   name="len">长度</param>  
        ///   <returns></returns>  
        public static string CutString(string str, int len)
        {
            str = str.Trim();
            byte[] myByte = System.Text.Encoding.Default.GetBytes(str);
            if (myByte.Length > len)
            {
                string result = "";
                for (int i = 0; i < str.Length; i++)
                {
                    byte[] tempByte = System.Text.Encoding.Default.GetBytes(result);
                    if (tempByte.Length < len)
                    {
                        result += str.Substring(i, 1);
                    }
                    else
                    {
                        break;
                    }
                }
                return result + "...";
            }
            else
            {
                return str;
            }
        }调用这个方法就可以了
      

  9.   

    虽然可以使用编程方式实现,但是效率却并不好。可以尝试下面的方法select id,substring(字段名,1,7) as filename from tablename
      

  10.   

    [code=HTML#]<%#Eval("Title").ToString().Substring(0,20) %>[/code]
    select left(Title,20) as Title from table