检索绑定值的子字符串

时间:2010-05-10 12:43:01

标签: c# asp.net data-binding

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

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

我试过了:

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

但得到了这个错误:

  

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

3 个答案:

答案 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个字符,否则它会给出错误。