Надежный способ контролировать высоту строки в asp: GridView? - PullRequest
0 голосов
/ 20 июня 2009

Кажется, я не могу помешать моим строкам в виде сетки быть слишком высокими ... из-за того, что я гуглю, кажется, что это невероятно распространенная проблема, но я просто не могу ее решить.

<GridView ID="gridComputerApps" DataSourceID="llbComputerApplication" runat="server" AutoGenerateColumns="False" 
            CellPadding="0" CellSpacing="0" style="overflow:hidden"
            GridLines="Horizontal"
            EmptyDataText ="NO APPLICATIONS FOUND FOR THIS COMPUTER."
            DataKeyNames="ComputerID, ApplicationID" RowStyle-Height="0px" RowStyle-BorderWidth="0" RowStyle-VerticalAlign="Top"
            EnableViewState="False">
            <Columns>

Я тоже пробовал:

Private Sub gridComputerApps_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridComputerApps.RowDataBound
        e.Row.Height = New Unit(5, UnitType.Pixel)
    End Sub

Существует ли абсолютно надежный способ решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 20 июня 2009

Вы пытались установить высоту строки в вашем CSS?

Установите этот стиль в свойствах CssClass для стилей RowStyle и AlternateRowStyle вашего GridView:

.smallRow {
  height: 15px;
}
0 голосов
/ 26 июня 2009

Это, похоже, решило проблему .... возможно, не все необходимо, но я продолжаю.

table, tr, th, td {height: 5px; line-height:1.0; 
                             margin: 0px 0px 0px 0px; 
                             border:0px 0px 0px 0px; 
                             padding: 1px 1px 1px 1px;
                             padding-top: 0px;
                             padding-right: 0px;
                             padding-bottom: 0px;
                             padding-left: 0px;
                             vertical-align: middle;
                             overflow:hidden;
                             overflow-x:hidden}

Одна особенно важная вещь, которую следует отметить, это padding-top, padding-left и т. Д. Firefox и IE по-разному интерпретируют заполнение, поэтому в FF это было правильно: обивка: 1px 1px 1px 1px;

Но IE, кажется, игнорирует это.

Другая заслуживающая внимания проблема заключается в том, что CSS, конечно, переопределяет установку высоты строки в событии RowDataBound, что имеет смысл.

ЕЩЕ ДРУГОЕ ОБНОВЛЕНИЕ: Исходный CSS выше перестал работать для меня по неизвестной причине. Я использую Blueprint CSS, что приводит к падению некоторых стилей, что портит мою пользовательскую таблицу стилей.

Так что в любом случае, я думаю, что, наконец, у меня это есть ... 1. В принципе, чтобы быть в безопасности (возможно, только если вы неорганизованны, как я), вы должны явно установить каждый атрибут, который может повлиять на высоту. Вот CSS, который я использую:

.xGridview tr, th, td, input {height: auto; 
                       line-height:normal; 
                     margin: 0px 0px 0px 0px; 
                     border:0px 0px 0px 0px; 
                     padding: 0px 0px 0px 2px; 
                     padding-top: 0px;
                     padding-right: 0px;
                     padding-bottom: 0px;
                     padding-left: 2px;
                     margin: 0px 0px 0px 0px;
                     margin-bottom: 0px;
                     margin-left: 0px;
                     margin-right: 0px;
                     margin-top: 0px;
                     vertical-align: middle;
                     overflow:hidden;
                     background-color:White}
  1. В моей сетке оказался обязательный валидатор полей; он становился невидимым, поэтому я не заметил этого, пока не использовал Firebug. Что еще хуже, я думаю, что он рендерился внутри таблицы, которая каким-то образом игнорировала CSS внешней таблицы.

  2. У меня в сетке был RadioButtonList, который по умолчанию отображается как таблица. Это можно изменить, установив RepeatLayout = "Flow" в элементе управления RadioButtonList, который вместо этого заставляет его отображаться в виде промежутка, что намного лучше. Также обратите внимание, что я добавил элемент INPUT в CSS, это необходимо для установки выравнивания по вертикали на ярлыках, прикрепленных к переключателям.

Так что, кажется, наконец-то подошел.

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