通常我们在写主题程序或者新闻的程序中..字符太多了需要处理。
使用substring()函数处理一下的
所以我想到写一公共函数:
#region //主题格式
/// <summary>
/// 功能: 设置显示格式: 主题+...
/// 创建时间:2008-12-18
/// 创建人:龚德辉
/// </summary>
/// <param name="sString">传入的参数</param>
/// <param name="nLeng">显示的长度</param>
/// <returns name="sNewStr">返回字符串</returns>
public static string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "...";
return sNewStr;
}
#endregion
GridView行bind的时候调用一下这个函数
protected void GV_NAp_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
e.Row.Cells[0].Text = Baseclass.SubStr(e.Row.Cells[0].Text, 24);
}
}
}
测试OK
问题出来了:
超链接的主题:
e.Row.Cells[0].Text =""空? 用模板列 转成模板列
<asp:GridView ID="GV_NeedAp" runat="server" GridLines="None" Height="99px" Width="199px" AutoGenerateColumns="False" OnRowDataBound="GV_NeedAp_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("TaskCode", "~/RedirectPage.aspx?TaskCode={0}") %>'
Text='<%# Eval("Task").ToString().Length>18?Eval("Task").ToString().Substring(0,18)+"...":Eval("Task").ToString() %>'></asp:HyperLink>
</ItemTemplate>
<ItemStyle ForeColor="Blue" />
</asp:TemplateField>
</Columns>
</asp:GridView>
用一个二元表达式就解决问题了...