检索绑定值的子字符串

shi*_*esh 4 c# asp.net data-binding

我绑定一些数据来控制,但是想要将特定字段的字符数限制为30个第一个字符.

如果有可能的话,我想在aspx页面上这样做.

我试过这个:

Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> '
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

索引和长度必须指向字符串中的位置.参数名称:长度

Kir*_*tan 7

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

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

protected string GetSubstring(string str, int length)
{
    return str.Length > length ? str.Substring(0, length) : str;
}
Run Code Online (Sandbox Code Playgroud)

从这样的aspx代码中调用它 -

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

  • 可以让它变得更好.protected string GetSubstring(object obj,int length){string str = obj.ToString(); 返回str.Length>长度?str.Substring(0,length):str; } ---- Text ='<%#GetSubstring(Eval("Title"),30)%>'你说什么? (3认同)