CheckBoxValidator vill egenskapen ControlToValidate att peka på en CheckBox, en CheckBoxList eller någon annan kontroll som har åtminstone ett barn kontroll Omdömen
Så, är detta allt som CheckBoxValidator behov. att arbeta på serversidan. Omdömen
Ytterligare två overrides ger oss möjlighet att utnyttja klientsidan validation.They båda inkluderar if (EnableClient) tillstånd, så att vi kan stänga av valideringsklientsidan vid konstruktion tid, som vi gör med andra mekanismerna.
Omdömen
Jag har registrerat två anpassade (Expando) attribut i validator.The första attributet (evaluationfunction) låter ramen vet vilka javascript funktion att åberopa för klientsidan validation.The andra (CheckedCount ) är en anpassad egenskap som lagrar Antalet valda kryssrutor Omdömen
skyddat åsidosätta void AddAttributesToRender (HtmlTextWriter författare) {base.AddAttributesToRender (författare). if (EnableClientScript) {Page.ClientScript.RegisterExpandoAttribute (this.ClientID "evaluationfunction", "CodeGolem_CheckBoxValidator", false); Page.ClientScript.
RegisterExpandoAttribute (this.ClientID "CheckedCount", getCheckedCount () ToString (), false.); }}
Slutligen, här är JavaScript-funktionen, som registrerades på sidan inom OnPreRender händelsen Omdömen
skyddat åsidosätta void OnPreRender (EventArgs e) {base.OnPreRender (e). if (EnableClientScript) {string onclick = string.Format ("if (this.checked) document.getElementById ('{0}') CheckedCount ++;.. annars document.getElementById ('{0}') CheckedCount--;" ClientID); foreach (objektkryssrutan getCheckBoxes ()) {if (kryssrutan är CheckBox) ((CheckBox) ruta) .Attributes.
Add ("onclick" onclick); if (kryssrutan är listitem) ((listitem) ruta) .Attributes.Add ("onclick" onclick); } Page.ClientScript.RegisterClientScriptBlock (getType (), "ValidationFunction", string.Format (@ "-funktion CodeGolem_CheckBoxValidator (avsändare) {{return sender.CheckedCount> = {0} && sender.CheckedCount}}", _minimumChecked, _maximumChecked), sann); }}
Detta lägger ett onclick händelsehanterare på varje kryssruta, uppräkning eller nedräkning av Validator s CheckCount.Validation passerar om egenskapen CheckCount ligger inom det tillåtna området Omdömen
OBS:.
Den containging Nämnden får också innehålla en blandning av Ch