Como estender um controle de formulário da Web para trabalhar com os controles de validação usando translation from VPE for Csharp Visual

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 310145
Sumário
Este artigo passo a passo mostra como estender o controle Calendar para validação do lado do servidor.

Nem todos os controles de formulários da Web podem ser usados em conjunto com os controles de validação. Para ser usado com os controles de validação, o controle deve ter um atributo ValidationProperty . O atributo ValidationProperty informa que a validação controla o valor para validar contra.

O controle de calendário é um dos controles que não podem ser validados em seu estado original. Em muitos casos, no entanto, é necessário ser capaz de validar a seleção do usuário no controle Calendar.

Há duas soluções para esse problema. A primeira é escrever um controle de validação personalizada. A segunda é estender o controle Calendar para que possa ser usado com os controles de validação internos. Este artigo aborda a segunda solução. Para obter informações sobre como escrever um controle de validação personalizada, consulte a seção "Referências" deste artigo.

Observação: Este artigo mostra como estender o controle Calendar para validação do lado do servidor somente. Para validação do lado do cliente ocorrer, a validação controla gancho até à propriedade de valor do controle HTML correspondente. Como o controle de calendário é criado através do uso de muitos elementos HTML, há não único controle HTML que contém o valor selecionado para o controle Calendar, portanto, validação do lado do cliente não é apropriada para o controle Calendar.

back to the top

Estendendo o controle de calendário

Você pode estender o controle Calendar, criando uma classe que herda o controle de calendário existente. Para permitir que o controle interagir com os controles de validação, você adiciona o atributo ValidationProperty e uma propriedade que retorna a data selecionada em um formato adequado para os controles de validação.

Para permitir que o controle para ser usado com o RequiredFieldValidator , seu código retornará uma seqüência vazia se SelectedDate propriedade do calendário é definido como 01-jan-0001 porque esta é a data em que é retornada se nenhuma data for selecionada. Todos os outros casos, ela retornará uma seqüência que contém a data formatada como AAAA/MM/dd , que pode ser usado pelo controle RandgeValidator .
  1. Crie um novo aplicativo ASP.NET translation from VPE for Csharp no Microsoft Visual Studio.

    No Microsoft Visual Studio 2005, execute estas etapas:
    1. Inicie o Visual Studio 2005.
    2. No menu arquivo , aponte para novo e, em seguida, clique em Site .
    3. Na caixa de diálogo New Web Site , clique em ASP.NET Web Site , clique em translation from VPE for Csharp Visual na lista idioma e, em seguida, clique em OK .

      Observação Por padrão, um novo site é chamado WebSite1 é criado e a página Default.aspx é exibida no modo Source.
  2. No Visual Studio. NET, no menu Project , clique em Adicionar classe.

    No Microsoft Visual Studio 2005, clique em Adicionar novo item no menu Website .
  3. Na caixa de diálogo Add New Item , clique em Class , clique em Adicionar e em seguida, clique em Sim .

    Observação Por padrão, uma nova classe que é denominada Class1 é criada e o arquivo Class1.cs é exibido no modo Source.
  4. Substitua o código existente no arquivo Class1.cs, usando o código a seguir.
    using System;using System.Web.UI;using System.ComponentModel;namespace ExtendCalendar{	[ValidationProperty("Text")]	public class VCalendar : System.Web.UI.WebControls.Calendar	{		public string Text 		{			get			{				string dateString = this.SelectedDate.ToString("yyyy/MM/dd");				if (dateString=="0001/01/01") return "";				return dateString;			}		}	}}						
    Observação O formato de data, "MM" deve ser maiúscula para retornar o mês. A letra minúscula "mm" retorna minutos. Retornar a data neste formato permite o intervalo de verificação por meio de comparação de seqüência de caracteres.
  5. No menu arquivo , clique em Salvar tudo e, em seguida, clique em Build Solution no menu Build .
back to the top

Adicionando o controle para um formulário da Web

Para adicionar um controle personalizado a um formulário da Web, você deve adicionar uma referência à parte superior da página da Web. Isso define o espaço para nome e a marca que você usar no HTML.
  1. Adicione uma página .aspx para o projeto.
  2. Registrar o controle na parte superior da página usando o < % @ register % > diretiva.
    <%@ Register TagPrefix="Custom" Namespace="ExtendCalendar" Assembly="csExtendCalendar" %>						
    você deve alterar o namespace para coincidir com o namespace usado no arquivo classe e o nome do assembly para corresponder o nome de projeto do seu aplicativo.
  3. Adicionar um controle vCalendar dentro do <FORM runat=server> </form> marca.
    <CUSTOM:VCALENDAR id="MyCalendar" runat="server"></CUSTOM:VCALENDAR>						
    alternar para modo Design e você verá o controle de calendário no formulário da Web. Se não for, você deve verificar as configurações de espaço para nome e o assembly estão corretas.
back to the top

Vinculando a controles de validador

Essa etapa adiciona um RangeValidator e um controle RequiredFieldValidator para o formulário da Web e links-los para o controle VCalendar.
  1. Adicionar um RangeValidator e um controle RequiredFieldValidator para a Web de formulário e vinculá-las para o controle calendário, definindo suas propriedades como segue. RangeValidator:
    ControlToValidate: MyCalendar
    ErrorMessage: Data deve estar entre 1/10/2001 e 31/10/2001
    MinimumValue: 10/2001/01
    MaximumValue: 2001 10/31
    EnableClientScript: False
    RequiredFieldValidator:
    ControlToValidate: MyCalendar
    ErrorMessage: Insira uma data!
    EnableClientScript: False
  2. Adicione um botão de formulário da Web à página.
back to the top

Testando a página da Web

  1. Criar o aplicativo: no menu Build , clique em Build Solution .
  2. Clique com o botão direito o formulário da Web no Solution Explorer e clique em View in Browser .
  3. Você deve ver uma página com um controle de calendário e um botão nele. Clique no botão. Você deve ver a mensagem RequiredFieldValidator.
  4. Selecione uma data fora do intervalo de 01-out-2001 para 31-out-2001 e, em seguida, clique no botão. Você deve ver a mensagem RequiredFieldValidator desaparecem e ser substituído por mensagem RangeValidator.
  5. Selecione uma data no intervalo de 01-out-2001 a 31-out-2001 e, em seguida, clique no botão. Nenhuma mensagem de validação deve aparecer.
back to the top
Referências
Consulte o tópico da Ajuda "Validação de formulários da Web". Você pode pesquisar ele digitando isso na ferramenta de procura de Ajuda e limitar a pesquisa Somente títulos .

back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 310145 - Última Revisão: 05/29/2007 05:49:50 - Revisão: 4.2

Microsoft ASP.NET 1.0, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbctrlcreate kbhowtomaster kbservercontrols KB310145 KbMtpt
Comentários