Thanks for your quick response, Gaurav! I appreciate the help.
I wasn't able to use your line of code exactly as you supplied it,
becuase ValidatedControlConverter returns a list of controls on the
page which can be validated. (I needed a list of controls on the page
matching type Label.) However, it pointed me in the right direction.
After poking around Google Groups and the Help file a bit more, I found
what I was looking for -- CustomIDConverter.
I created a new class which inherits CustomIDConverter and overrides
the Filter method. It basically filters out any of the controls ready
to be listed if they don't match the specified type. At Design time,
the dropdown in the Properties window now shows only the labels on the
form. It also excludes my CustomServerValidator, because it's not a
*true* Label.
My revised code is below for anyone who might run into a similar
situation.
Public Class LabelConverter
Inherits ControlIDConverter
Protected Overrides Function FilterControl(ByVal control As
System.Web.UI.Control) As Boolean
If Not TypeOf (control) Is Label Then
Return False
End If
Return MyBase.FilterControl(control)
End Function
End Class
Public Class CustomServerValidator
Inherits System.Web.UI.WebControls.CustomValidator
Private _ErrorLabel As String
<Browsable(True), TypeConverter(GetType(LabelConverter))> _
Public Property ErrorLabel() As String
Get
Return _ErrorLabel
End Get
Set(ByVal value As String)
_ErrorLabel = value
End Set
End Property
Public Sub New()
Me.EnableClientScript = False
Me.ValidateEmptyText = True
End Sub
<...unrelated code removed...>
End Class
> I wasn't able to use your line of code exactly as you supplied it,
> becuase ValidatedControlConverter returns a list of controls on the
> page which can be validated. (I needed a list of controls on the page
> matching type Label.) However, it pointed me in the right direction.
Yes... it will list down all controls that have an attribute
"ValidationProperty" (System.Web.UI.ValidationPropertyAttribute)
> After poking around Google Groups and the Help file a bit more, I found
> what I was looking for -- CustomIDConverter.
Yes... that's the root of all Control-To-Validate filters.
> Protected Overrides Function FilterControl(ByVal control As
> System.Web.UI.Control) As Boolean
[quoted text clipped - 6 lines]
>
> End Function
How about something like this:
If TypeOf(control) is Label OR TypeOf(control) is CustomServerValidator Then
Return True
Else
Return False
End If
Don't call MyBase.FilterControl(control)
because that will always return "true".

Signature
Happy Hacking,
Gaurav Vaish | www.mastergaurav.com
www.edujinionline.com
http://articles.edujinionline.com/webservices
-----------------------------------------
philaphan80@yahoo.com - 04 Oct 2006 21:25 GMT
> How about something like this:
>
[quoted text clipped - 3 lines]
> Return False
> End If
No, that wouldn't work, because it would display my own control in the
dropdown list. The way I listed it above works well, because it
excludes anything that's not a Label.
Thanks again for your help, Gaurav. You saved me from a lot of time
and frustration.
Gaurav Vaish (www.EdujiniOnline.com) - 05 Oct 2006 03:42 GMT
> No, that wouldn't work, because it would display my own control in the
> dropdown list. The way I listed it above works well, because it
> excludes anything that's not a Label.
Hmm... chicken and egg problem in that case...
> Thanks again for your help, Gaurav. You saved me from a lot of time
> and frustration.
Always welcome!

Signature
Happy Hacking,
Gaurav Vaish | www.mastergaurav.com
www.edujinionline.com
http://articles.edujinionline.com/webservices
-----------------------------------------
philaphan80@yahoo.com - 20 Oct 2006 19:41 GMT
> Hmm... chicken and egg problem in that case...
You're right, Gaurav.
When I was testing this previously, I only had one
CustomServerValidator on the page. Once I dropped a second one onto
the page, it was available to the first one as a possible ErrorLabel
control. The first was available to the second as well.
It seems by default, the control filters itself from the list even when
overridden. But the other ones are fair game. (That's why I never saw
my control in the dropdown list! It was automatically filtering
itself.)
Anyway, I've modified the code and figured it was worth posting here in
case anyone else runs into a similar problem.
If TypeOf (control) Is BaseValidator Then
Return False
ElseIf Not TypeOf (control) Is Label Then
Return False
Else
Return True
End If