can't get evaluationfunction attribute set correctly on CustomValidator

Discussion in 'ASP .Net Building Controls' started by TS, Aug 3, 2007.

  1. TS

    TS Guest

    i want to specify evalutionfunction for my custom validator control. i have
    tried many ways to get this to work, but in the end, the evaluationfunction
    attribute always gets rendered as the default

    lientSigned" evaluationfunction="CustomValidatorEvaluateFunction"
    requiredfield="false" validatewhenempty="false" label="" validationGroup1
    mustBeChecked="true" style="color:Red;display:none;"></span>

    protected override void AddAttributesToRender(HtmlTextWriter writer){
    base.AddAttributesToRender(writer); string x;
    //this.ClientValidationFunction = "CheckBoxValidatorEvaluateIsValid";
    "CheckBoxValidatorEvaluateIsValid", false);
    Attributes.Add("evaluationfunction", "CheckBoxValidatorEvaluateIsValid");
    writer.AddAttribute("mustBeChecked", MustBeChecked ? "true" : "false",

    how do i do this correctly? I have tried to also not override
    AddAttributesToRender and instead in prerender just add these 2 attributes.
    No matter what i do, evaluationfunction gets overwritten somewhere

    what can i do?
    TS, Aug 3, 2007
    1. Advertisements

  2. TS

    TS Guest

    i found out that this is in the base class to my class (which is inherited
    from customvalidator)
    protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter


    /// TODO: Get rid of the Custom EvaluationFunction


    Attributes["evaluationfunction"] = "CustomValidatorEvaluateFunction";


    writer.AddAttribute("requiredfield", RequiredField.ToString().ToLower());


    writer.AddAttribute("label", Label);

    writer.AddAttribute("validationGroup1", ValidationGroup1);


    i tried the same remove() function as above in my overriden method but no
    luck :(
    TS, Aug 3, 2007
    1. Advertisements

  3. TS

    Teemu Keiski Guest

    They aren't written from Attributes collection but directly as expando
    attribute on the derived, concrete validator implementation

    protected override void AddAttributesToRender(HtmlTextWriter writer)
    if (base.RenderUplevel)
    string controlId = this.ClientID;
    HtmlTextWriter writer2 = base.EnableLegacyRendering ? writer : null;
    base.AddExpandoAttribute(writer2, controlId, "evaluationfunction",
    "CustomValidatorEvaluateIsValid", false);
    if (this.ClientValidationFunction.Length > 0)
    //client-side registration

    AddExpandoAttribute is implemented as follows

    internal static void AddExpandoAttribute(Control control, HtmlTextWriter
    writer, string controlId, string attributeName, string attributeValue, bool
    if (writer != null)
    writer.AddAttribute(attributeName, attributeValue, encode);
    controlId, attributeName, attributeValue, encode);

    so basically you could try registering the attribute with
    control.Page.ClientScript.RegisterExpandoAttribute yourself.

    Teemu Keiski
    AspInsider, ASP.NET MVP

    Teemu Keiski, Aug 5, 2007
  4. Thanks Teemu for your informative input.

    Hi TS,

    Please feel free to let us know if there's anything unclear. Thanks.

    Walter Wang (, remove 'online.')
    Microsoft Online Community Support

    When responding to posts, please "Reply to Group" via your newsreader so
    that others may learn and benefit from your issue.

    This posting is provided "AS IS" with no warranties, and confers no rights.
    Walter Wang [MSFT], Aug 9, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.