У меня есть Элемент управления DetailsView, который включает несколько строк, образующих адрес. В идеале я хотел бы «объединить» строку Address со следующими двумя строками, по существу удалив границы между ними.
Я предполагаю, что я мог бы использовать asp: TemplateField для создания приблизительного решения (используйте одну строку, но с разрывами строк в ячейке secondf (данные)), но я бы предпочел посмотреть, есть ли какие-либо другие средства вдоль те же строки моего предыдущего стиля (с использованием CssClass). Кроме того, это упражнение для обучения, как и все остальное.
Я попытался присвоить Address2 BoundField класс и удалить нижнюю и верхнюю границы с помощью CSS, но, похоже, это не работает. Глядя на HTML, он присваивает класс одной ячейке, тогда как я думаю, что мне нужно применить этот класс ко всей строке. Я не могу каким-либо образом адресовать всю строку; Я могу обрабатывать все строки, столбец или только одну ячейку.
Какие-либо предложения?
Фрагменты кода:
HTML:
<h2 class = "title">Event Details</h2>
<div class = "entry">
<form id = "frmEvents" runat = "server">
<asp:DetailsView ID = "vwEventDetails" runat = "server" CssClass = "vwEventDetails" FieldHeaderStyle-CssClass = "FieldCol" >
<Fields>
<asp:BoundField HeaderText = "Event" DataField = "EventName" ReadOnly = "true" SortExpression = "EventName" />
<asp:BoundField HeaderText = "Date & Time" DataField = "EventDate" ReadOnly = "true" SortExpression = "EventDate" />
<asp:BoundField HeaderText = "Address" DataField = "Address1" ReadOnly = "true" SortExpression = "Address1" />
<asp:BoundField HeaderText = "" DataField = "Address2" ReadOnly = "true" SortExpression = "Address2" ItemStyle-CssClass = "noBorders" />
<asp:BoundField HeaderText = "" DataField = "Address3" ReadOnly = "true" SortExpression = "Address3" />
<asp:BoundField HeaderText = "Town" DataField = "Town" ReadOnly = "true" SortExpression = "Town" />
<asp:BoundField HeaderText = "County" DataField = "County" ReadOnly = "true" SortExpression = "County" />
<asp:BoundField HeaderText = "Postcode" DataField = "Postcode" ReadOnly = "true" SortExpression = "Postcode" />
<asp:BoundField HeaderText = "Entry Fee" DataField = "EventFee" ReadOnly = "true" SortExpression = "EntryFee" />
<asp:BoundField HeaderText = "Sponsor" DataField = "SponsorName" ReadOnly = "true" SortExpression = "Sponsor" />
<asp:BoundField HeaderText = "Category" DataField = "CategoryName" ReadOnly = "true" SortExpression = "Category" />
<asp:HyperLinkField HeaderText = "" DataTextField = "" Text = "Make A Booking" DataNavigateUrlFields = "EventID" DataNavigateUrlFormatString = "bookevent.aspx?eventid = {0}" />
</Fields>
</asp:DetailsView>
</form>
</div>
CSS:
.vwEventDetails .FieldCol
{
font-weight: bold;
background-color: #99CCFF;
width: 100px;
}
.vwEventDetails tr td
{
padding: 0 2em;
}
.noBorders
{
border-bottom-style:none;
border-top-style:none;
}





Я бы использовал 2 стиля:
.noTopBorders { border-top: none; }
.noBottomBorders { border-bottom: none; }
Я бы назначил noTopBorders свойствам HeaderStyle-CssClass и ItemStyle-CssClass полей "Address2" и "Address3".
Я бы назначил noBottomBorders свойствам HeaderStyle-CssClass и ItemStyle-CssClass связанных полей «Address1» и «Address2».
Мне нужно увидеть вашу страницу, чтобы понять, почему она вам не подходит. Ваша ссылка в настоящее время не работает.
Хммм ... Это сейчас - не уверен, когда и почему он когда-либо падал.
Страница отображается правильно в ie7 и chrome, но не в FF. Я бы начал с удаления стиля border-collapse в таблице, удаления атрибута border из таблицы и использования css для применения границ к атрибутам td этой таблицы.
Кен, спасибо, но это тоже не сработало. Я мог бы вносить различные изменения, используя ваши предлагаемые классы, но не удалять границы. Есть другие идеи?