Обтекание текста GridView без видимого пространства - PullRequest
5 голосов
/ 04 декабря 2008

У меня есть GridView с несколькими полями, одно из которых может потенциально иметь сумасшедшее широкое значение, например:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Если что-то типа находится в поле, я хочу, чтобы это завернуло.

Я могу легко вставлять символ в код каждые 50 символов или около того ... но какой символ? Если я использую \ r \ n или пробел или подобное, то иногда настройка не переносится (потому что 50 символов другого ряда шире), и я получаю нечто это:

ммммммммммы
ммммм
llllllllll llllllllll llll

Я не хочу, чтобы эти места появлялись; Я просто хочу, чтобы строка там была перенесена, если это возможно, но в противном случае ничего не отображается:

ммммммммммы
ммммм
llllllllllllllllllllllll

Кроме того, я бы предпочел оставить HtmlEncode на , если это возможно. Есть ли способ сделать это?

Ответы [ 4 ]

5 голосов
/ 31 мая 2013

ItemStyle-Wrap = "true" ItemStyle-Width = "100" не работает для одного длинного слова без пробела.

Нашли решение:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Cells[1].Attributes.Add("style", "word-break:break-all;word-wrap:break-word");
                }
            }

где Cells [1] - это столбец, который вы хотите обернуть.

4 голосов
/ 04 декабря 2008

вставьте эти строки CSS в класс и вставьте этот класс в элементы сетки

white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */
white-space: -pre-wrap; /* Opera 4 - 6 */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
white-space: pre-wrap; /* CSS3 */ 
word-wrap: break-word; /* IE 5.5+ */
0 голосов
/ 05 августа 2011

Вы можете использовать следующие свойства поля шаблона в GridView

ItemStyle-Wrap="true" ItemStyle-Width="100"

Вы должны установить ширину, иначе текст не будет перенесен.

0 голосов
/ 04 декабря 2008

Вы можете сделать несколько вещей здесь.

Одним из вариантов является изменение соответствующего столбца на TemplateColumn и размещение в нем элемента div с возможностью создания полос прокрутки. Я бы действительно предложил против этого.

Если вы используете CRLF (\ r \ n), вам нужно будет обернуть его в теги PRE , и вы захотите изменить факт шрифта на моноширинный шрифт (например, Courier). ), чтобы 50 символов были ВСЕГДА одинаковой длины.

Если вам нужно решение HTML, тогда нужно вставить тег BR в текст в соответствующем месте.

Теперь вы также хотели бы убедиться, что вы проверяете длину строки (убедитесь, что она больше, чем длина вашего магического числа), и что она не содержит пробела (так как пробел позволит для упаковки), перед вставкой либо CRLF, либо BR.

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