Проблема выравнивания в GridView, когда между содержимым нет пробела - PullRequest
2 голосов
/ 29 июля 2011

Это сценарий

SLNo FirstName LastName Описание

1 AA BB descriptiondfgfdfgdfgdfgfdgdfgdfgfdgdfgdfgfdgdfgdfgfdgfdgf

                     gfggfgfgfgfgfgfgfgfgfgfgfgfg

2 CC BB descriptionfdfdfdfdfdf

Вся строка просто перемещаетсявправо .. Как мы можем исправить проблему .. Не существует проблемы, даже если между ними есть пробел, Как решить эту проблему.

Эта проблема была опубликована в http://forums.asp.net/t/1228361.aspx/1 кем-то другим,В качестве решения нам нужно обернуть его, добавив этот код e.Row.Cells [4] .Attributes.Add ("style", "WORD-BREAK: BREAK-ALL");

Если это так,это должно быть написано в каком случае?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 29 июля 2011

используется событие OnPreRenderComplete, оно действует после других (OnLoad, OnInit ...)

public void OnPreRenderComplete(EventArgs e) {
     if(!Page.IsPostBack) {
         ....
     }
}

см. http://msdn.microsoft.com/en-us/library/system.web.ui.page.onprerendercomplete.aspx

3 голосов
/ 09 августа 2011

Исправлена ​​проблема с добавлением Word-Break в событие RowDataBound

защищенный void HcidGridView_RowDataBound (отправитель объекта, GridViewRowEventArgs e) { // Cell [5] указывает столбец комментариев e.Row.Cells [5] .Attributes.Add ("style", "WORD-BREAK: BREAK-ALL"); }

2 голосов
/ 29 июля 2011

Word-Break не работает во всех браузерах. Однако вы можете сделать следующее, чтобы ограничить ограничение текста.

private void OnItemDataBound(object sender, DataGridItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || 
        e.Item.ItemType == ListItemType.AlternatingItem)
    {   
        if(e.Item.Cells[3].Text > 50)
           e.Item.Cells[3].Text= e.Item.Cells[3].Text.SubString(0, 47) + "...";
           // Or add space after 50 characters.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...