[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.aspnet.buildingcontrols

can't get evaluationfunction attribute set correctly on CustomValidator

TS

8/3/2007 8:15:00 PM

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
"CustomValidatorEvaluateFunction":

<span
id="ctl00_ctl00_ContentMainPlaceHolder_ApplicationContentMainPlaceHolder_cbC
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";
//writer.AddAttribute("evaluationfunction",
"CheckBoxValidatorEvaluateIsValid", false);
Attributes.Add("evaluationfunction", "CheckBoxValidatorEvaluateIsValid");
writer.AddAttribute("mustBeChecked", MustBeChecked ? "true" : "false",
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?


3 Answers

TS

8/3/2007 8:38:00 PM

0

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
writer)

{

/// TODO: Get rid of the Custom EvaluationFunction

Attributes.Remove("evaluationfunction");

Attributes["evaluationfunction"] = "CustomValidatorEvaluateFunction";

base.AddAttributesToRender(writer);

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

writer.AddAttribute("validatewhenempty",
ValidateEmptyText.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" <manofsteele1@nospam.nospam> wrote in message
news:OHJf1rg1HHA.1164@TK2MSFTNGP02.phx.gbl...
> 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
> "CustomValidatorEvaluateFunction":
>
> <span
>
id="ctl00_ctl00_ContentMainPlaceHolder_ApplicationContentMainPlaceHolder_cbC
> 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";
> //writer.AddAttribute("evaluationfunction",
> "CheckBoxValidatorEvaluateIsValid", false);
> Attributes.Add("evaluationfunction", "CheckBoxValidatorEvaluateIsValid");
> writer.AddAttribute("mustBeChecked", MustBeChecked ? "true" : "false",
> 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?
>
>


Teemu Keiski

8/5/2007 7:46:00 AM

0

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

protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(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
encode)
{
if (writer != null)
{
writer.AddAttribute(attributeName, attributeValue, encode);
}
else
{
control.Page.ClientScript.RegisterExpandoAttribute(control,
controlId, attributeName, attributeValue, encode);
}
}


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

--
Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice....
http://teemu...





"TS" <manofsteele1@nospam.nospam> wrote in message
news:ee0oA5g1HHA.5532@TK2MSFTNGP02.phx.gbl...
>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
> writer)
>
> {
>
> /// TODO: Get rid of the Custom EvaluationFunction
>
> Attributes.Remove("evaluationfunction");
>
> Attributes["evaluationfunction"] = "CustomValidatorEvaluateFunction";
>
> base.AddAttributesToRender(writer);
>
> writer.AddAttribute("requiredfield", RequiredField.ToString().ToLower());
>
> writer.AddAttribute("validatewhenempty",
> ValidateEmptyText.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" <manofsteele1@nospam.nospam> wrote in message
> news:OHJf1rg1HHA.1164@TK2MSFTNGP02.phx.gbl...
>> 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
>> "CustomValidatorEvaluateFunction":
>>
>> <span
>>
> id="ctl00_ctl00_ContentMainPlaceHolder_ApplicationContentMainPlaceHolder_cbC
>> 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";
>> //writer.AddAttribute("evaluationfunction",
>> "CheckBoxValidatorEvaluateIsValid", false);
>> Attributes.Add("evaluationfunction", "CheckBoxValidatorEvaluateIsValid");
>> writer.AddAttribute("mustBeChecked", MustBeChecked ? "true" : "false",
>> 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?
>>
>>
>
>


wawang

8/9/2007 2:46:00 AM

0

Thanks Teemu for your informative input.

Hi TS,

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


Regards,
Walter Wang (wawang@online.microsoft.com, 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.