Как говорит Саймон, вы столкнетесь с этой ошибкой, когда строка будет содержать менее 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) %>'