限制网格视图边界字段中显示的字符数

本文关键字:显示 字符 字段 网格 视图 边界 | 更新日期: 2023-09-27 18:08:38

我有一个显示用户姓名、主题和日期的gridview。.aspx代码看起来像这样:

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

如果用户输入的主题有200个字符,我不希望它全部显示出来,否则页面会像疯了一样拉长。有没有办法检查一下,如果主题超过60个字符,剩下的就去掉,然后……只是附加的?所以主语会说:

这是一个非常非常长的主题

这是一个真正的....

我知道如何在c#代码中做到这一点,但不确定如何在。aspx

限制网格视图边界字段中显示的字符数

中操作它

试试这个:

<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列。