您的位置:首页 > 数据库

绑定SqlDataSource的Gridview字符串字段长度截取

2010-10-20 11:24 399 查看
一批现有代码,页面都是直接绑定了SqlDataSource的Gridview,现在想对字段显示的长度做一个控制,目的是不想因为字段过长折到下一行,使每行高度不同。改动最小,最简单的方案是什么呢

听说可以用CSS使过长的字段隐起来吗?

字符串不能格式化真不方便...

----------------------------------------------------------------------

天台gridview中 加模版列

<asp:TemplateField HeaderText=" 内容 ">

<ItemStyle HorizontalAlign="Center" />

<HeaderStyle HorizontalAlign="Center" Width="15%" />

<ItemTemplate>

<%# CutString(Convert.ToString(Eval("Content")), 20)%>

</ItemTemplate>

</asp:TemplateField>

后台代码中

/// <summary>

///
字符长度控制 中文 英文识别!

/// 注:一个汉字作为2个字符长度处理

/// </summary>

/// <param name="str">要进行切割的字符串</param>

/// <param name="len">返回的长度(自动识别中英文)</param>

/// <returns></returns>

protected string CutString(string str, int len)

{

byte[] sarr = System.Text.Encoding.Default.GetBytes(str);

if (sarr.Length > len)

return System.Text.Encoding.Default.GetString(sarr, 0, len) + "...";

else

return str;

}

--------------------------------------------------------

给个参考

<asp:repeater id="FeedBackList" Runat="server">

<ItemTemplate>

<tr height="35px"
onmouseout="this.style.backgroundColor='#FFFFFF'"
onmouseover="this.style.backgroundColor='#eeeffe'">

<td align="center"><%# DataBinder.Eval(Container.DataItem,"username")%></td>

<td><%# DataBinder.Eval(Container.DataItem,"title")%></td>

<td><%#
DataBinder.Eval(Container.DataItem,"content").ToString().Length>15?DataBinder.Eval(Container.DataItem,"content").ToString().Substring(0,15)+"...":DataBinder.Eval(Container.DataItem,"content").ToString()%></td>

<td align="center"><%# DataBinder.Eval(Container.DataItem,"date")%></td>

<td align="center">

<span style="cursor:hand" id='<%#
DataBinder.Eval(Container.DataItem,"id")%>'
onclick=Del(this)>删除</span>

<a href="FeedBackdetails.aspx?id='<%#
_fcksavedurl=""FeedBackdetails.aspx?id='<%#"
DataBinder.Eval(Container.DataItem,"id")%>'">查看详情</a>

</td>

</tr>

</ItemTemplate>

</asp:repeater>

--------------------------------------------------------

<style>.stringCut{

width:50px; overflow:hidden;text-overflow:ellipsis; white-space:nowrap;

}</style>

<div class="stringCut">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>

--------------------------------------------------------

在CS里面GRIDVIEW的事件截取 e.Row.Cells[2] 这是那个地段!选择框为0然后往后排

protected void gvFlash_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

e.Row.Cells[2].Text=e.Row.Cells[2].Text.ToString().PadRight(50).Substring(0,50);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: