GridView中如何设置每个单元格内的文字不显示完啊,比如只显示5个字,后边的用.....

解决方案 »

  1.   

    在绑定数据的时候substring()一下不就行了。
      

  2.   

    自己定义个GetSubString()的方法用来截取你需要的字符串,在DataGrid_ItemDataBound事件里处理绑定的字符串。
      

  3.   

    /// <summary>
    /// 截取字符串长度
    /// </summary>
    /// <param name="str">需要截取的字符串</param>
    /// <param name="sqlitInt">截取长度</param>
    /// <returns></returns>
    protected string SplitStr(string str,int sqlitInt){
    string result ; if(str.Length<=0)
    result = str; if(str.Length<= sqlitInt)
    result = str;
    else
    result = str.Substring(0,sqlitInt); return result; }
      

  4.   

    # region 方法:string TransString(string, int)按字符串的实际长度截取定长字符串
    47 public static string TransString(string Str,int Length)
    48 {
    49 int i = 0, j = 0;
    50 foreach (char Char in Str)
    51 {
    52 if ((int)Char > 127)
    53 i += 2;
    54 else
    55 i ++;
    56 if (i > Length)
    57 {
    58 Str = Str.Substring(0, j) + "...";
    59 break;
    60 }
    61 j ++;
    62 }
    63 return Str;
    64 }
      

  5.   

    for(int i=0;i<DataGrid.Items.Rows.Count;i++)
    {
       for(int j=0;j<DataGrid.Items.Cells.Count;j++)
       {
           if(DataGrid.Items.Rows[i].Cell[j].Text.length>5)
           {
             DataGrid.Items.Rows[i].Cell[j].Text=DataGrid.Items.Rows[i].Cell[j].Text.Substring(0,5);
           }
       }
    }
      

  6.   

    不需要手动截取,因为那样很难看,例如截5个字符可能会是:
    "一二三四五..."
    "wwwww..."
    "iiiii..."在非等宽字体中"w"和"i"的宽度也有差距,那么5个字符的宽度的差距就很大了,这时候同样是5个字符,但是每行宽度不一,会很难看。主流的做法是,使用CSS中的"text-overflow"属性,详细用法你可以在MSDN里查到,也可以Google获得。它能够让浏览器自行截取,而截取的依据是指定宽度而非字符数。
      

  7.   

    如果一开始你就知道这个问题是CSS可以解决的,跑去Web大版下面CSS版问,估计不出3分钟就有人告诉你答案了。但是在一个ASP.NET程序员堆里问,大家都只懂得用自己习惯的思维去思考,不懂得从美工的做事方式去思考,结果肯定走弯路。其实CSS很多属性都是贴近美工和排版人员的思维的。
      

  8.   

    我当时也考虑了另外一个样式属性
    word-break
    不过这个不起作用
      

  9.   

    自己写个字符串缩减方法. 再用在绑定命令上 <%# xxx.yyy((string)Eval("ccc"), 5, "...") %>
      

  10.   

    text-overflow已经不被支持了