C# 如何使用jQuery和/或C截断数据列表内asp.net标签中的文本#

C# 如何使用jQuery和/或C截断数据列表内asp.net标签中的文本#,c#,jquery,asp.net,label,datalist,C#,Jquery,Asp.net,Label,Datalist,我希望在数据列表中的标签中裁剪一些文本 <asp:Label runat="server" Text='<%# Eval("Description") %>'></asp:Label> 如果描述长度超过100个字符,并且出现“显示更多”链接(“不需要显示更少”),我希望我的描述被裁剪。单击“ShowMore”后,完整描述应显示在同一页面上(这是我希望使用jQuery的地方) 有人能帮我开始解决这个问题吗?我知道这是个老问题,但为了回答: public s

我希望在数据列表中的标签中裁剪一些文本

<asp:Label runat="server" Text='<%# Eval("Description") %>'></asp:Label>

如果描述长度超过100个字符,并且出现“显示更多”链接(“不需要显示更少”),我希望我的描述被裁剪。单击“ShowMore”后,完整描述应显示在同一页面上(这是我希望使用jQuery的地方)


有人能帮我开始解决这个问题吗?

我知道这是个老问题,但为了回答:

public static class Extensions
{
    /// <summary>
    /// Truncate a value if it is a string.
    /// </summary>
    /// <param name="value">The value to check and truncate.</param>
    /// <param name="length">The length to truncate to.</param>
    /// <param name="appendEllipses">Append ellipses to the end of the value?</param>
    /// <returns>A truncated string, if not a string the object value.</returns>
    public static object Truncate(this object value, int length, bool appendEllipses = true)
    {
        // Are we dealing with a string value?
        var result = value as string;

        // Yes? truncate, otherwise pass through.
        return result != null ? Truncate(result, length, appendEllipses) : value;
    }

    /// <summary>
    /// Truncate a value if it is a string.
    /// </summary>
    /// <param name="value">The value to check and truncate.</param>
    /// <param name="length">The length to truncate to.</param>
    /// <param name="appendEllipses">Append elipses to the end of the value?</param>
    /// <returns></returns>
    public static string Truncate(this string value, int length, bool appendEllipses = true)
    {
        var result = value;

        // Too Long?
        if (value.Length > length)
        {
            // Truncate.
            result = value.Substring(0, length);

            // Add Ellipses, if needed.
            if (appendEllipses) { result = result + " ..."; }
        }

        return result;
    }
}
公共静态类扩展
{
/// 
///如果值是字符串,则截断该值。
/// 
///要检查和截断的值。
///要截断的长度。
///是否在值的末尾附加省略号?
///截断的字符串,如果不是字符串,则为对象值。
公共静态对象截断(此对象值,int-length,bool-appendellipes=true)
{
//我们在处理字符串值吗?
var结果=字符串形式的值;
//是吗?截断,否则通过。
返回结果!=null?截断(结果、长度、附录):值;
}
/// 
///如果值是字符串,则截断该值。
/// 
///要检查和截断的值。
///要截断的长度。
///是否将省略号附加到值的末尾?
/// 
公共静态字符串截断(此字符串值,int-length,bool-appendellipes=true)
{
var结果=价值;
//太久了?
如果(value.Length>Length)
{
//截断。
结果=值。子字符串(0,长度);
//如果需要,添加省略号。
如果(appendellipes){result=result+“…”;}
}
返回结果;
}
}
您可以这样使用第二种方法:

<%# Eval("Description").ToString().Truncate(10) %>
<%# Eval("Description").Truncate(10) %>

或者,为了避免混乱,您可以使用第一种方法,如下所示:

<%# Eval("Description").ToString().Truncate(10) %>
<%# Eval("Description").Truncate(10) %>


我并不是百分之百地希望向对象类添加扩展方法,因为在任何地方都会出现扩展方法,这往往是一件痛苦的事情,因此我选择了它。

尝试使用Eval(“Description”)。SubString(0100)我尝试过这个,但它会导致一个问题,因为我的一些字符串少于100个字符请检查长度,然后如果textbox1.text.length>100-…子字符串(01100)是否尝试过类似于100的内容?(Eval(“Description”)作为字符串)。子字符串(0100):Eval(“Description”)%%>