Nosso sistema de negócios envolve muita edição e verificação de formulários. A maneira mais simples é usar o controle de verificação de dados que vem com o asp.net, mas isso apresenta os três problemas a seguir:
1. O controle de verificação deve ser incluído no design. ao formulário e definir manualmente atributos como tipo de dados, mensagem de erro, etc. é bastante complicado.
2 Para uma caixa de entrada, talvez seja necessário marcar vários itens, como: obrigatório, deve estar no formato de data e deve ser maior que 2007-1-1. Isso requer a adição de vários controles de validação.
3 As regras e formulários de negócios estão vinculados, o que não favorece a manutenção e a reutilização.
As funções de verificação que esperamos são:
1. As regras de verificação são separadas do formulário. Basta desenhar a caixa de entrada no formulário. O controle de verificação será criado dinamicamente de acordo com o arquivo de configuração em tempo de execução.
2 De acordo com as regras de verificação, uma mensagem de prompt padrão é gerada: não pode estar vazio, tipo de número errado, deve estar entre 1 e 100.
3 Expressões de regras de validação flexíveis: como: range(1, 200), >=0,5, Mail(), Mobile(). Atualmente, condições como e, ou não são
suportadas
, mas podem ser facilmente estendidas.Por esse motivo, encapsulamos esta parte da função. Ao usá-la, você só precisa
definir o seguinte no arquivo xml: nome do controle, tipo de dados, se é necessário e informações da expressão de verificação.
Aqui está uma citação:
<ValidarInfo>
<ControlName>Quantidade de pontos de venda</ControlName>
<DataType>Inteiro</DataType>
<Require>verdadeiro</Require>
<Expressão>intervalo(1, 100)</Expressão>
</ValidateInfo>
No evento Page_Init da página, chame o método de classe:
ValidateHelper.LoadFromFile("data verify_configuration.xml") pode ser usado.
Projeto de aula:
//Classe de informações de configuração
classValidateInfo
{
string pública NomeControle;
ValidationDataType público DataType;
string pública Mensagem de erro;
bool público Exigir;
Expressão de string pública;
}
//Fábrica de criação de controle de validação
classe pública ValidatorFactory
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(string min, string max);
CreateCompareValidator(operação ValidationCompareOperator, string valueToCompare);
...
}
// Analisador de regras de verificação, cria controles de verificação com base nas informações de configuração
classe pública ValidatorParser
{
Parse (informações ValidateInfo, fábrica ValidatorFactory);
...
}
// Ler as informações de configuração e vincular o controle de verificação ao formulário
classe pública ValidateHelper
{
LoadFromFile(Página página, string fileName)
}