private void zcfglist_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
(e.Item.Cells[0].Text.Trim().ToString().Length>20)
e.Item.Cells[0].Text=e.Item.Cells[0].Text.Trim().ToString().Substring(0,18);
}private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.zcfglist.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.zcfglist_ItemDataBound);
}
我想在修改大于20长度的字符串只取前18个...
运行没有提示错误.但是datagrid里的值没有发生任何变化...

解决方案 »

  1.   

    http://singlepine.cnblogs.com/articles/289156.htmlprivate void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
            if (e.Item.ItemType!=ListItemType.Header)
           {
                    string subject=Convert.ToString(DataBinder.Eval(e.Item.DataItem,"Description"));
                    if (subject.Length >20) 
                    {
                        subject=subject.Substring(0,18)+"...";
                    }
                    e.Item.Cells[0].Text=subject;
             }
    }
      

  2.   

    (36): 找不到类型或命名空间名称“DataBinder”(是否缺少 using 指令或程序集引用?)
      

  3.   

    找不到类型或命名空间名称“DataBinder”(是否缺少  using  指令或程序集引用?)  
    DataBinder还要引用吗?怎么引用啊?
      

  4.   

    建议:
    1,在截取字符的那里设置一些断点,看看变量和流程是否和预期的一样
    2,你可以在数据绑定的时候(即DataGrid1_ItemDataBound或者其他的ItemCreated等事件)通过捕获数据对象,直接对对象进行截取,具体取决于你棒定的时候使用什么数据集合了另外正如singlepine(小山)提供的信息
    对DataGrid的类型判断也很重要
    通常要处理的是ListItemType的Item,AternatingItem两种,所以要加判断