我有一个gridview,显示用户的姓名,主题和日期。 .aspx代码如下所示:
<asp:BoundField DataField="UserName"
SortExpression="UserName" />
<asp:BoundField DataField="Subject"
SortExpression="Subject" />
<asp:BoundField DataField="Date"
SortExpression="Date" />
如果用户输入了200个字符的主题,我不希望它全部显示,否则页面会像疯了一样被拉伸。有没有办法进行检查,以便如果主题超过60个字符,其余部分将被取消并且......仅附加?因此,主题将来自:
这是一个真实存在的长期主题
到
这是一个真实的......
我知道如何在C#代码中执行此操作但不确定如何在.aspx中操作它
答案 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
列一样。