Saturday, July 12, 2008

Hyperlink Column in ASP.NET

By default, hyperlink column doesn't allow using Javascript. For this, I inherited from BoundField to have more control.


Public Class HyperlinkBoundField
Inherits BoundField
Public NavigateUrlFormatString As String
Public NoLinkValue As String

Public Sub New()
MyBase.New()
End Sub

Public Sub New(ByVal field As BoundField, ByVal noLinkValue As String, ByVal urlFormat As String)
Me.DataField = field.DataField
Me.HeaderText = field.HeaderText
Me.HeaderImageUrl = field.HeaderImageUrl
Me.SortExpression = field.SortExpression
Me.NoLinkValue = noLinkValue
Me.NavigateUrlFormatString = urlFormat
End Sub

Protected Overrides Function FormatDataValue(ByVal dataValue As Object, ByVal encode As Boolean) As String
Dim value As String = MyBase.FormatDataValue(dataValue, encode)
If String.IsNullOrEmpty(value) OrElse value = NoLinkValue Then
Return value
Else
Return String.Format(NavigateUrlFormatString, value)
End If
End Function
End Class

No comments: