方法1、你写一个方法,到页面上: StrLength 这个方法就是处理字符串的,写到cs文件中。 protected string StrLength (string str) { if (str.Length > 10) { return str.Substring(0, 10) + "..."; } else { return str; }
} GridView 中用模板列 <asp:TemplateField> <ItemTemplate> <%# StrLength(DataBinder.Eval(Container.DataItem,"title").ToString())%> </ItemTemplate> </asp:TemplateField> 方法2、 用css。
方法3、在数据库里面直接栽掉... select case when len(field)> 10 then left(field,10)+'...' else field end as news_name,news_id from tablename 方法4、 在RowDataBound方法中: 如果是BoundField,则: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[2].Text.Length > 10) { e.Row.Cells[2].Text = e.Row.Cells[2].Text.Substring(0, 10) + "..."; } else { e.Row.Cells[2].Text=e.Row.Cells[2].Text } } } 如果是TemplateField,则: 方法5、 如果是 TemplateField 列,可以直接帮定时操作 <asp:TemplateField HeaderText="Hehe"> <ItemTemplate> <asp:Label runat="server" Text= <%#Eval("job_id").ToString().Substring(0,10)+"..."%> > </asp:Label> </ItemTemplate> </asp:TemplateField>
protected void GridView1_RowDataBound ( object sender, GridViewRowEventArgs e ) { if ( e.Row.RowType == DataControlRowType.DataRow ) { if ( ( ( Label ) e.Row.Cells [ 2 ].FindControl ( "Hehe" ) ).Text .Length > 10 ) { ( ( Label ) e.Row.Cells [ 2 ].FindControl ( "Hehe" ) ).Text = ( ( Label ) e.Row.Cells [ 2 ].FindControl ( "Hehe" ) ).Text.Substring ( 0, 10 ) + "..."; }
|