<%# DataBinder.Eval(Container.DataItem,"title").ToString().Length>33?
DataBinder.Eval(Container.DataItem,"title").ToString().Substring(0,30)+"...":DataBinder.Eval(Container.DataItem,"title")%>在repeater的一列中固定长度,多出的字符用...代替,我用上面的方法实现。但有个问题,
比如一行可以容纳30个汉字, 但当输入的是字母时,刚刚显示一半就出现...了,请问怎么解决???
string.format 有类似的方法吗,repeater有 nowrap的属性吗?

解决方案 »

  1.   

    public class ForumString
    30 {
    31 # region 方法:Len(string)取得字符串的实际长度(一个中文字符按两个单位计算)返回int型
    32 public static int Len(string Str)
    33 {
    34 int intResult = 0;
    35 foreach (char Char in Str)
    36 {
    37 if ((int)Char > 127)
    38 intResult += 2;
    39 else
    40 intResult ++;
    41 }
    42 return intResult;
    43 }
    44 # endregion
      

  2.   

    写个函数,byteCount是显示的字节数,
    Dim txtBytes As Byte() = System.Text.Encoding.Default.GetBytes(yourDisplayString)
    Dim newBytes(byteCount - 3) As Byte
    Dim i As Integer
    For i = 0 To byteCount - 3
      newBytes(i) = txtBytes(i)
    Next
    Return System.Text.Encoding.Default.GetString(newBytes) + "..."
      

  3.   

    比方说你帮定的是title
    你可以,写一个getstring函数,前台如下
    <%#getstring(DataBinder.Eval(Container.DataItem,"title")) %>在后台:
    public string getstring(object Object)
    {
    string str = Object.ToString();
             string ss = null;
              if(str大于30)
                {
                 ss = str.Substring(0,30)+"...";
                }
    return ss ;
    }
      

  4.   

    return ss 
    放到if里面
    我只是给你个思路,你不会挑俺这小毛病把
      

  5.   

    順便BS一把chouf(脱剑膝前横) ,問題都沒看清楚
      

  6.   

    对alien54155415的疑问,
    按字节取的话会不会出现 取出半个汉字 的问题呢,比如 "阿s不才",如果取3个字符的话会是什么?
      

  7.   

    不会取到半个汉字,GetString会自行处理的,"阿s不才",取3个字符和4个结果一样
      

  8.   

    固定长度显示区域,内容超出用"..."截尾,这个问题3天前才回答过,又有人提了,大家提问前应该搜索一下。正确的做法不是自己用代码去截,而是让浏览器根据CSS指定的宽度去截。有一个CSS属性叫做text-overflow,详细用法你可以自己去查,在这里简单举例:
    <div style="width:20px;text-overflow:ellipsis;overflow:hidden">在这里是一段长长的文字,但仅显示宽度为20px的内容。</div>
      

  9.   

    固定长度显示区域,内容超出用"..."截尾,这个问题3天前才回答过,又有人提了,大家提问前应该搜索一下。正确的做法不是自己用代码去截,而是让浏览器根据CSS指定的宽度去截。有一个CSS属性叫做text-overflow,详细用法你可以自己去查,在这里简单举例:
    <div style="width:20px;text-overflow:ellipsis;overflow:hidden">在这里是一段长长的文字,但仅显示宽度为20px的内容。</div>==================================================================
    只显示20PX 后面的会用...代替吗
      

  10.   

    固定长度显示区域,内容超出用"..."截尾,这个问题3天前才回答过,又有人提了,大家提问前应该搜索一下。正确的做法不是自己用代码去截,而是让浏览器根据CSS指定的宽度去截。有一个CSS属性叫做text-overflow,详细用法你可以自己去查,在这里简单举例:
    <div style="width:20px;text-overflow:ellipsis;overflow:hidden">在这里是一段长长的文字,但仅显示宽度为20px的内容。</div>
    ===========================================================
    我刚才试了 这个可以在DIV中用,但不能在TD中用