*   >> Lese Utdanning Artikler >> science >> programming

ASP.NET - C # - Hvordan kode en gjenbrukbar CheckBoxValidator

0; if (IsValid) _checkBoxes = getCheckBoxes (); returnere IsValid;}

CheckBoxValidator ønsker ControlToValidate egenskapen til å peke på en avkrysnings, en CheckBoxList, eller enhver annen kontroll som har minst ett barn kontroll

Så dette er alt de CheckBoxValidator behov. å arbeide på serversiden.

To flere styrer tillate oss å utnytte klientsiden validation.They både inkluderer en if (EnableClient) tilstand, slik at vi kan deaktivere klientside validering på design-tiden, som vi gjør med andre validatorer.


Jeg har registrert to egendefinerte (expando) attributter av validator.The første attributt (evaluationfunction) lar rammen vite hvilke Javascript-funksjonen til å påberope for klientsiden validation.The andre en (CheckedCount ) er en spesialegenskap som lagrer greven av utvalgte boksene

beskyttet ride void AddAttributesToRender (HtmlTextWriter forfatter) {base.AddAttributesToRender (forfatter).; if (EnableClientScript) {Page.ClientScript.RegisterExpandoAttribute (this.ClientID, "evaluationfunction", "CodeGolem_CheckBoxValidator", false); Page.ClientScript.

RegisterExpandoAttribute (this.ClientID, "CheckedCount", getCheckedCount () toString (), falske.); }}

Til slutt, her er Javascript-funksjonen, som er registrert på siden i OnPreRender hendelsen

beskyttet ride void OnPreRender (EventArgs e) {base.OnPreRender (e).; if (EnableClientScript) {string onclick = string.Format ("if (this.checked) document.getElementById ('{0}') CheckedCount ++;.. ellers document.getElementById ('{0}') CheckedCount--;", ClientID); foreach (objekt avkrysningsboks i getCheckBoxes ()) {if (boksen er avmerkingsbokser) ((avmerkingsbokser) avmerkingsboks) .

Attributes.Add ("onclick", onclick); if (boksen er listitem) ((listitem) avmerkingsboks) .Attributes.Add ("onclick", onclick); } Page.ClientScript.RegisterClientScriptBlock (getType (), "ValidationFunction", string.Format (@ "-funksjonen CodeGolem_CheckBoxValidator (sender) {{return sender.CheckedCount> = {0} && sender.CheckedCount}}", _minimumChecked, _maximumChecked), ekte); }}

Dette legger en onclick hendelseshåndterer på hver boksen, øker eller reduserer Validator er CheckCount.Validation passerer hvis CheckCount Eiendommen ligger innenfor det tillatte området

.

MERK: containging panel

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.