扩展BoundField类以在gridview </span>呈现的标记内添加<span>标记

时间:2012-02-10 21:04:17

标签: asp.net .net vb.net web-controls

我想在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以使用此处提供的修复。

Using CSS to create table cells of a specific width with no word wrapping

编辑我想我可能会认为这一切都错了,也许你不会通过扩展BoundField来改变渲染,而是将属性添加到boundfield然后改变gridview呈现的方式它的字段基于这些字段的属性。

这也让我走上了控制适配器的道路,如果有人能够证实或使这种怀疑无效,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

不是我开始寻找的解决方案,但它确实起到了作用。注意我仍然扩展绑定字段以添加椭圆属性,如上所示。另外,我扩展了gridview以覆盖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

我仍然愿意接受更好的实施,但我现在要继续这样做,所以我可以继续前进。