我绑定一些数据来控制,但是想要将特定字段的字符数限制为30个第一个字符。
如果可能的话,我想在aspx页面上这样做。
我试过了:
Text='<%# String.Format("{0}", Eval("Title")).Substring(0,30) %> '
但得到了这个错误:
索引和长度必须参考a 字符串中的位置。参数 名称:长度
答案 0 :(得分:7)
正如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) %>'
答案 1 :(得分:1)
当您的字符串长度不至少为30个字符时,会发生此错误。你可以先检查它,然后像你在代码片段中那样切掉你不需要的字符。
String s = "hello";
if(s.Length > 30)
{
s.Substring(0,30);
}
在一行中:
s.Length > 30? s.Substring(0,30) : s;
答案 2 :(得分:0)
Substring采用起始索引和长度。所以你应该确保字符串不小于30个字符,否则它会给出错误。