Расширение класса BoundField для добавления тега <span>внутри тега <td>, отображаемого gridview - PullRequest
1 голос
/ 11 февраля 2012

Я хотел бы добавить свойство к элементу управления BoundField, которое будет изменять рендеринг, как показано ниже.

<td>My Bound Text></td>

Должно стать

<td><span>My Bound Text</span></td>

Это все, что у меня пока есть...

Public Class BoundField
    Inherits System.Web.UI.WebControls.BoundField

    Dim _ellipse As Boolean
    Public Property Ellipse() As Boolean
        Get
            Return _ellipse
        End Get
        Set(value As Boolean)
            _ellipse = value
        End Set
    End Property

End Class

Я уточняю свою цель ... У меня та же проблема, что и у этого автора, однако я использую .net gridview и хотел бы отрисовать мой html, чтобы использовать предложенное здесь исправление.

Использование CSS для создания ячеек таблицы определенной ширины без переноса слов

РЕДАКТИРОВАТЬ Я думаю, что я могу ошибаться, возможно, выне изменяйте рендеринг, расширяя BoundField, вместо этого добавьте свойства в ограниченное поле, а затем измените способ, которым gridview визуализирует свои поля на основе свойств этих полей.

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

1 Ответ

1 голос
/ 13 февраля 2012

Не решение, которое я искал, но оно делает свою работу.Обратите внимание, что я все еще расширяю связанное поле, чтобы добавить свойство ellipse, как показано выше.Кроме того, я расширил вид сетки, чтобы переопределить событие OnRowBound, как показано ниже.

    Protected Overrides Sub OnRowDataBound(ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    For i As Integer = 0 To MyBase.Columns.Count - 1
        If CType(MyBase.Columns(i), BoundField).Ellipse = True Then
            e.Row.Cells(i).Text = "<div class=""ellipsis"">" & e.Row.Cells(i).Text & "</div>"
        End If
    Next
End Sub

Я все еще открыт для лучшей реализации, но сейчас я собираюсь сделать это, чтобы двигаться дальше.

...