ID do artigo: 316495 - Última revisão: sexta-feira, 23 de fevereiro de 2007 - Revisão: 2.4

Erro: Botões de opção não são mutuamente exclusivo quando usado em um controle Repeater do servidor

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você adiciona um controle RadioButton do ASP.NET para o ItemTemplate de um controle de servidor Repeater ligados a dados, o controle RadioButton que você criou não é mutuamente exclusivo quando você executa a página ASP.NET. Esse problema ocorre mesmo se o atributo Nome_do_grupo é definido para os controles RadioButton .

Causa

Esse problema ocorre porque o controle Repeater do servidor implementa a interface INamingContainer , que requer que todos os controles que ficam aninhados nele devem ter um nome exclusivo quando processado em HTML (Hypertext Markup Language). Portanto, o atributo de nome HTML de qualquer controle de servidor filho processado é exclusivo.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.

Mais Informações

Versões HTML 3.2 e posteriores exigem que todos os controles de botão de rádio que são mutuamente exclusivos tenham o mesmo atributo de nome exclusivo. Como os controles que estejam dentro de um limite Repeater de servidor controle deve ter um nome exclusivo, o controle HTML RadioButton processado não é mutuamente exclusivo.

Observe que o atributo GroupName deve resolver esse problema. Se você definir o atributo GroupName , cada controle RadioButton deve processar o mesmo atributo de nome HTML foi especificado pelo atributo GroupName do controle de servidor. O comportamento esperado não ocorre porque o cliente exclusivo nomeação substitui o uso da propriedade GroupName .

Etapas para reproduzir o problema

  1. Crie um novo projeto de aplicativo Microsoft Visual translation from VPE for Csharp .NET Web.
  2. No modo Design, arraste um controle Repeater do servidor para a página de WebForm1.aspx padrão.
  3. No modo de exibição de HTML, adicione o seguinte <itemtemplate> código para Repeater1:
    <ItemTemplate>
    <asp:RadioButton id="RadioButton1" runat="server" GroupName="RadioButton1" Text="<%#Container.DataItem.ToString()%>">
    </asp:RadioButton><br>
    </ItemTemplate>
    					
  4. No evento Page_Load de WebForm1.aspx, adicione o seguinte código:
    			TestArray[0]="Test Value 0";
    			TestArray[1]="Test Value 1";
    			TestArray[2]="Test Value 2";
    
    			Repeater1.DataSource = TestArray;
    			Repeater1.DataBind();
    					
  5. Adicione a seguinte variável de instância à classe de página :
    protected String[] TestArray = new String[3];
    					
  6. Criar o projeto e, em seguida, exibir a página no navegador.
  7. Clique em cada controle RadioButton individual para verificar que você pode selecioná-los sem alterar o valor de outros controles RadioButton .

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palavras-chave: 
kbmt kbbug kbdatabinding kbnofix kbservercontrols kbwebforms KB316495 KbMtpt
Tradução automáticaTradução automática
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: 316495  (http://support.microsoft.com/kb/316495/en-us/ )