Получение подстроки связанного значения - PullRequest
4 голосов
/ 10 мая 2010

Я связываю некоторые данные с контролем, но хочу ограничить количество символов в определенном поле 30 первыми символами.

Я хочу сделать это, если это возможно, на странице aspx.

Я пробовал это:

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

Но получил эту ошибку:

Индекс и длина должны относиться к расположение в строке. параметр имя: длина

Ответы [ 3 ]

7 голосов
/ 10 мая 2010

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

Эта ошибка возникает, если длина строки не менее 30 символов. Вы должны сначала проверить это, а затем отрезать ненужные символы, как это было в вашем фрагменте кода.

String s = "hello";
if(s.Length > 30)
{
    s.Substring(0,30);
}

И в одну строку:

s.Length > 30? s.Substring(0,30) : s;
0 голосов
/ 10 мая 2010

Подстрока принимает начальный индекс и длину. Поэтому вы должны убедиться, что строка имеет длину не менее 30 символов, иначе она выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...