*   >> Leitura Educação Artigos >> science >> programação

ASP.NET - C # - Como codificar um CheckBoxValidator reutilizável

Aqui eu vou explicar como codificar um reutilizável, controle universal, CheckBoxValidator

Eu gosto de chamá-lo de "universal", porque é capaz de validar:.

  • um único CheckBox

  • a /quantidade mínima máximo de CheckBoxes dentro de um CheckBoxList

  • a /quantidade mínima máximo de CheckBoxes dentro de qualquer controle contendo (por exemplo, dentro de um Panel)

    O código fonte completo está anexado na parte inferior deste artigo.

    Vamos dar uma olhada em algumas parte do código.


    Em primeiro lugar, o CheckBoxValidator tem que herdar de BaseValidator e implementar, pelo menos, o método mais importante de um validador precisa: EvaluateIsValid.The CheckBoxValidator também expõe MinimumChecked e MaximumChecked propriedades para vamos definir em tempo de design quantas caixas estão autorizados a ser selecionado

    classe pública CheckBoxValidator:. BaseValidator {_controlToValidate controle privado ; _checkBoxes lista Privada; int privado _minimumChecked = 1; private int _maximumChecked = int.

    MaxValue; public int MinimumChecked {get {return _minimumChecked; } Set {_minimumChecked = value; }} Public int MaximumChecked {get {return _maximumChecked! = Int.MaxValue? _maximumChecked: 0; } Set {_maximumChecked = valor! = 0? valor: int.MaxValue; }} Protected override bool EvaluateIsValid () {int count = getCheckedCount (); retornar count> = _minimumChecked && count}}

    Como você pode ver, a função de avaliação recebe uma contagem de caixas de seleção selecionados e verifica se ele está dentro do range.

    Here permitido é o método getCheckedCount ():

    int getCheckedCount privado () {int count = 0; foreach (objeto checkBox em _checkBoxes) {bool; if (checkBox é ListItem) selecionado = ((ListItem) checkBox) .selected; if (checkBox é CheckBox) selecionado = ((CheckBox) checkBox) .checked; if (selecionado) count ++; } Contagem de retorno;}

    Você pode notar a lista _checkBoxes na verdade não contém apenas caixas de seleção. É uma lista de objetos, e pode conter objetos de caixa de seleção, bem como ListItem objects.

    This é permitir que o validador para lidar com ambos CheckBox e CheckBoxList objects.You pode encontrar o método getCheckBoxes () no arquivo de origem em anexo.

    Há um outro método validador deve substituir: ControlPropertiesValid.The BaseValidator chama esse método para verificar se a propriedade ControlToValidate está definido corretamente

    protected override bo

    Page   <<       [1] [2] >>
  • Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.