# region 方法:string TransString(string, int)按字符串的实际长度截取定长字符串
public static string TransString(string Str,int Length)
{
int i = 0, j = 0;
foreach (char Char in Str)
{
if ((int)Char > 127)
i += 2;
else
i ++;
if (i > Length)
{
Str = Str.Substring(0, j) + "...";
break;
}
j ++;
}
return Str;
} # endregion

解决方案 »

  1.   

    楼上的,谢谢了。但是我说的是截断 DataGrid里的字符。从数据库读出来的。不是固定的字符啊。我只是想在他显示前把字符串限定在一定的宽度内。 :)
      

  2.   

    设置ItemTemplate的CSS样式:overflow:hidden
      

  3.   

    <%# (DataBinder.Eval(Container.DataItem, "ttitle")).ToString().Substring(0,20)%>
      

  4.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
      if(e.Item.ItemIndex>-1)
      {
        if(e.Item.Cells[2].Text.Length>22)
        {
          e.Item.Cells[2].Text=e.Item.Cells[2].Text.Substring(0,22).ToString()+"....";    }
      }
    }
    能看明白吗?
      

  5.   

    哦。明白。谢谢楼上几位,特别感谢hahawuwu()  luluso(luluso) xiahouwen(活靶子.NET) ( ) 等几位。
    揭贴