限制gridview中Boundfield中显示的字符数

时间:2013-04-11 01:30:41

标签: c# .net gridview

我有一个gridview,显示用户的姓名,主题和日期。 .aspx代码如下所示:

      <asp:BoundField DataField="UserName" 
            SortExpression="UserName" />
        <asp:BoundField DataField="Subject" 
            SortExpression="Subject" />
        <asp:BoundField DataField="Date" 
            SortExpression="Date" />

如果用户输入了200个字符的主题,我不希望它全部显示,否则页面会像疯了一样被拉伸。有没有办法进行检查,以便如果主题超过60个字符,其余部分将被取消并且......仅附加?因此,主题将来自:

这是一个真实存在的长期主题

这是一个真实的......

我知道如何在C#代码中执行此操作但不确定如何在.aspx中操作它

1 个答案:

答案 0 :(得分:4)

试试这个:

<asp:TemplateField>
    <ItemTemplate>
        <%# ((string)Eval("Subject")).Length < 200? Eval("Subject") :((string)Eval("Subject")).Substring(0,200) + "..."%>)
    </ItemTemplate>
</asp:TemplateField>

或者(更干净地),您可以(如果可能)向数据源项类添加属性,并以正常方式使用该属性。比如说,您的数据源项类是UserMail;然后添加一个公共财产,如TruncatedSubject,如:

partial class UserMail
{        
    public string TruncatedSubject
    {
       get
       {
           return Subject.Length < 200? Subject : (Subject.SubString(0,200) + " ...");
       }
    }        
}

然后您可以使用它(TruncatedSubject代替Subject),就像普通的BoundField列一样。