在Gridview中标记ItemTemplate

时间:2009-05-28 10:12:16

标签: asp.net

我想在Gridviews ItemTemplate中只显示100个字符。当我单击编辑按钮时,我想用EditItemTemplate显示所有绑定值。

<ItemTemplate>

<asp:Label ID="Label2" runat="server" Text='<%# Bind("Address") %>'> </asp:Label>

</ItemTemplate>

如何限制标签文字100个字符?

1 个答案:

答案 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) %>

(这假设地址确实是一个字符串)