我将从SQLServer2005中的一篇文章绑定到一个Lable中时,显示在首页中我嫌它太长了,我希望只截取100个字符的长度,该怎么截取啊???各位大侠帮帮忙,帮小弟解决一下!!急!!前台代码是这样的:<div id="div1"><asp:Label ID="artical" runat="server" Text='<%#CutString(Eval("AContent")) %>'></asp:Label>[<a href="gywm.aspx" class="cWhite" >详情</a>]</div>我用了一个截取字符串的方法,但是没用,这个方法只对repeater控件里的数据有用!方法是:
public string CutString(object obj)
    {
        string str = obj.ToString();
        if (str.Length > 100)
            return str.Substring(0,99)+"……";
        else
            return str;
    }

解决方案 »

  1.   

    LZ开国际玩笑哦~~~~~~~~~~~~~~~~!repeater能用  别的控件就不能用????只能说是技术问题。asp:Label ID="artical" runat="server" Text='<%#CutString(Eval("AContent")) %>'></asp:Label>  这LABLE是放在什么控件里面的? 还是单独的?? 
      

  2.   

    <div id="div1"><asp:Label ID="artical" runat="server" Text='<%#CutString(Eval("AContent")).Substring(0,100)%>'></asp:Label>[<a href="gywm.aspx" class="cWhite" >详情</a>]</div>
      

  3.   

    字符串截取就是用substring(开始,数量)
    你自己可以试试
      

  4.   

    Eval("AContent")??????这样能绑定的上么?  没放到gridview里面之类的?
      

  5.   

    Text='<%#CutString(Eval("AContent")).ToString().Length >100?CutString(Eval("AContent")).ToString().SubString(0,99)+"...":CutString(Eval("AContent"))%>'
      

  6.   

    为什么很少人用itemdatabound  或 rowdatabound  事件呢?跟前台一点关系都没有   后台数据库的值  得到后想怎么处理怎么处理
      

  7.   

    建议LZ要么绑定数据的时候在后台就处理好,前台就不用管了,要么就将lable放到gridview或repeated里面....
      

  8.   


     /// <summary>   
            /// 截取字符串长度   
            /// </summary>   
            /// <param name="input">要截取的字符串对象</param>   
            /// <param name="length">要保留的字符个数</param>   
            /// <param name="suffix">后缀(用以替换超出长度部分)</param>   
            /// <returns></returns>   
            public static string MySubString(string input, int length, string suffix)
            {   
                //表示字符编码
                Encoding encode = Encoding.GetEncoding("gb2312");
                byte[] byteArr = encode.GetBytes(input);
                if (byteArr.Length <= length) return input;            int m = 0, n = 0;
                foreach (byte b in byteArr)
                {
                    if (n >= length) break;
                    if (b > 127) m++; //重要一步:对前p个字节中的值大于127的字符进行统计   
                    n++;
                }
                if (m % 2 != 0) n = length + 1; //如果非偶:则说明末尾为双字节字符,截取位数加1               return encode.GetString(byteArr, 0, n) + suffix;
            }
    前段时间遇到一样的问题,别人给我的方法,不错,看一下
    http://topic.csdn.net/u/20100625/10/58f6b78d-7cb6-49b5-80d2-0f3263c9c4ae.html
    这是我的问题贴,希望对你有帮助
      

  9.   

    public string CutString(string str )
      {
      str=Regex.Replace(str,@"<[^> ]+>",""); 
      if (str.Length > 100)
      return str.Substring(0,99)+"……";
      else
      return str;
      }