三种方法可以实现,前两种是C#代码实现(原理一样),第三种是CSS实现。
1.cs代码中:GridView的RowDataBound中对想做处理的项做Remove()字符串截取。
2.aspx页面中:GridView的<ItemTemplate>数据项模板标签对中对其控件内显示文本的相应属性做Eval绑定,同样以SubString为最终截取显示文本。
如:

<asp:TemplateField HeaderText="描述">
 <ItemTemplate>
 <asp:Label ID="lbl" runat="server" Text='<%#Eval("Description").ToString() >12?Eval("Description").ToString().Remove(10)+"...":Eval("Description").ToString() %>'></asp:Label>
 </ItemTemplate>
 </asp:TemplateField>

3.CSS方式:此方式需要对GridView的每一列进行Width设定才可实现。
CSS样式如下:

.content
 {
 width: 100%;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis; /*以省略号替代截除部分*/
 }

使用时,将该CSS样式赋予要截取字符串的列上即可。如:

<asp:TemplateField HeaderText="原因">
 <ItemTemplate>
 <asp:Label ID="lblDescription" runat="server" Text='<%#Eval("Description") %>' ToolTip='<%#Eval("Description").ToString() %>'></asp:Label>
 </ItemTemplate>
 <HeaderStyle Width="750px" Wrap="false" />
 <ItemStyle Wrap="false" HorizontalAlign="Left" CssClass="content" />
 </asp:TemplateField>

三种方法的优缺点:
1.优点:灵活变通,无需要设定单元格宽度,代码集中管理;缺点:由于是后台代码方式实现,故修改后,DLL类库需要编译,对于维护而言较为不便。
2.优点:同1,缺点:同1,同时代码相对1较分散,不便管理。
3.优点:CSS方式实现,运用简单,使用方便。缺点:需要设定每一列的宽度。

三种方法各有利弊,需适不同情况选择最佳方案。