*   >> Læs Uddannelse artikler >> science >> programming

ASP.NET - C # - Hvordan at kode en genanvendelig CheckBoxValidator

Her vil jeg forklare, hvordan man kode en genanvendelig, universel, CheckBoxValidator kontrol

jeg ynder at kalde det "universelle", fordi det er i stand til at validere. :

  • et enkelt CheckBox

  • et minimum /maksimum mængde af afkrydsningsfelter i en CheckBoxList

  • et minimum /maksimum mængde af afkrydsningsfelter inden for enhver, der indeholder Kontrol (fx inden et panel)

    Fuld kildekode er fastgjort i bunden af ​​denne artikel.

    Lad os give et kig på nogle del af koden.


    Først og fremmest Den CheckBoxValidator skal arve fra BaseValidator og gennemføre mindst den vigtigste metode en validator behov: EvaluateIsValid.The CheckBoxValidator også udsætter MinimumChecked og MaximumChecked egenskaber til at lade os definere på design-time, hvor mange afkrydsningsfelter er tilladt at blive udvalgt

    .

    public class CheckBoxValidator: BaseValidator {private Kontrol _controlToValidate; private List _checkBoxes; privat int _minimumChecked = 1; private int _maximumChecked = int.

    MaxValue; offentlig int MinimumChecked {få {vende tilbage _minimumChecked; } Sæt {_minimumChecked = værdi; }} Public int MaximumChecked {få {vende tilbage _maximumChecked! = Int.MaxValue? _maximumChecked: 0; } Sæt {_maximumChecked = værdi! = 0? værdi: int.MaxValue; }} Beskyttet overstyring bool EvaluateIsValid () {int count = getCheckedCount (); tilbage count> = _minimumChecked && tælle}}

    Som du kan se, evalueringen funktionen får en optælling af udvalgte afkrydsningsfelter og kontrollerer, om det er inden for den tilladte range.

    Here er getCheckedCount () metode:

    privat int getCheckedCount () {int count = 0; foreach (objekt afkrydsningsfeltet _checkBoxes) {bool; hvis (afkrydsningsfelt er listitem) udvalgt = ((listitem) afkrydsningsfeltet) .Selected; hvis (afkrydsningsfelt er CheckBox) valgt = ((CheckBox) afkrydsningsfeltet) .Checked; hvis (valgt) count ++; } Tilbagevenden optælling;}

    Du kan mærke listen _checkBoxes faktisk ikke kun indeholde afkrydsningsfelter. Det er en liste over objekter, og kan indeholde CheckBox objekter, samt listitem objects.

    This er at sætte validator til at håndtere både afkrydsningsfeltet og CheckBoxList objects.You kan finde getCheckBoxes () metoden i den vedhæftede kildefilen.

    Der er en anden metode validator skal tilsidesætte: ControlPropertiesValid.The BaseValidator påberåber denne metode til at kontrollere, om ControlToValidate ejendommen er indstillet korrekt

    Page   <<       [1] [2] [3] >>
  • Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.