0

我有一个显示用户名、主题和日期的网格视图。.aspx 代码如下所示:

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

如果用户输入一个 200 个字符的主题,我不希望它全部显示,否则页面会像疯了一样被拉伸。有没有办法进行检查,以便如果主题超过 60 个字符,其余的被删除并且 ... 只是附加上?所以主题会从说:

这是一个很长的主题

这是一个真正的......

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

4

1 回答 1

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而不是)。SubjectBoundField

于 2013-04-11T01:36:55.793 回答