我想在Gridviews ItemTemplate中只显示100个字符。当我单击编辑按钮时,我想用EditItemTemplate显示所有绑定值。
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Address") %>'> </asp:Label>
</ItemTemplate>
如何限制标签文字100个字符?
答案 0 :(得分:2)
由于您正在使用ItemTemplate,因此您不需要使用Bind()。您可以使用Eval()代替:
<%# Eval("Address").ToString().Substring(0, 100) %>
这种简单的解决方案存在两个问题:
第一个是当地址字段为空时,你必须检查它。第二个是如果字符串短于100个字符,它也将失败,因为.NETs Substring()会尝试确保您总是得到正好100个字符并在字符串较短时抛出异常。所以你应该添加代码以确保你真的需要剪切字符串。
到现在为止,感觉我们应该做一个小帮手方法:
public static class Extensions
{
public static String Limit(this String s, int length)
{
if (s == null)
return String.Empty;
return s.Substring(0, Math.Min(s.Length, length));
}
}
然后Eval语句如下:
<%# ((string)Eval("Address")).Limit(100) %>
(这假设地址确实是一个字符串)