<asp:TemplateColumn>
<ItemTemplate>
<asp:Label runat="server" Text='<%# ShorterText(DataBinder.Eval(Container, "DataItem.YourText")) %>' ToolTip='<%# DataBinder.Eval(Container, "DataItem.YourText") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
后台增加一个protected的函数ShorterText
protected string ShorterText(object obj)
{
string returnValue=object.toString().Trim();
if(returnValue.Length>15)
return returnValue.SubString(0,12)+"...";
else
return returnValue;
}

解决方案 »

  1.   

    在datelist里面可以使用bind可是在dategrid里面的列
    <asp:HyperLinkColumn DataNavigateUrlField="PrdId" DataNavigateUrlFormatString="Single.aspx?id={0}" DataTextField="PrdName"
    DataTextFormatString="{0}">不是使用bind的格式的啊  DataTextFormatString  这里怎么写呢?
      

  2.   

    ASCIIEncoding n = new ASCIIEncoding();
    byte[] b = n.GetBytes(str);
    int l = 0;  // l 为字符串之实际长度
    for (int i=0;i <= b.Length-1;i++)
    {
        if (b[i] ==63)  //判断是否为汉字或全脚符号
        {
            l++;
        }
        l++;
    }
    给你个函数能精确算出实际长度哦
    在用一楼的方法
      

  3.   

    //判断是否为汉字或全脚符号
    如果不为b[i] ==63
    说明是字母或数字 ,长度加 0.5 就 OK 了
      

  4.   

    可是楼上的各位  datagrid里面怎么用自定义函数来赋值给DataNavigateUrlField和DataTextField啊??