C# 检索绑定值的子字符串

C# 检索绑定值的子字符串,c#,asp.net,data-binding,C#,Asp.net,Data Binding,我将一些数据绑定到控件,但希望将特定字段的字符数限制为前30个字符 如果可能的话,我想在aspx页面上做 我试过这个: Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> ' Text='' 但我犯了这个错误: 索引和长度必须参考 字符串中的位置。参数 名称:长度 当字符串长度不超过30个字符时,会发生此错误。您应该先检查它,然后像在代码片段中那样,切掉不需要的字符 String s = "hello"

我将一些数据绑定到控件,但希望将特定字段的字符数限制为前30个字符

如果可能的话,我想在aspx页面上做

我试过这个:

Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> '
Text=''
但我犯了这个错误:

索引和长度必须参考 字符串中的位置。参数 名称:长度


当字符串长度不超过30个字符时,会发生此错误。您应该先检查它,然后像在代码片段中那样,切掉不需要的字符

String s = "hello";
if(s.Length > 30)
{
    s.Substring(0,30);
}
在一行中:

s.Length > 30? s.Substring(0,30) : s;

正如Simon所说,当字符串少于30个字符时,您将遇到此错误

您可以在页面中编写受保护的方法-

protected string GetSubstring(string str, int length)
{
    return str.Length > length ? str.Substring(0, length) : str;
}
从aspx代码中调用它,如下所示-

Text='<%# String.Format("{0}", GetSubstring(Eval("Title").ToString(), 30) %>'
Text=''

子字符串采用起始索引和长度。因此,您应该确保字符串不少于30个字符,否则它将给出错误。

可以使其更好。受保护的字符串GetSubstring(objectobj,int-length){string str=obj.ToString();返回str.length>length?str.Substring(0,length):str;}----Text=''你说什么?