Artigo: 316495 - Última revisão: sexta-feira, 23 de Fevereiro de 2007 - Revisão: 2.4

Erro: Botões de opção não se encontram mutuamente exclusiva quando utilizado num controlo de repetidor 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 | Reduzir tudo

Sintomas

Quando adiciona um controlo ASP.NET RadioButton ItemTemplate de um controlo de servidor de Repetidor vinculado a dados, o controlo do tipo ' botão de opção ' que criou não é mutuamente quando executa a página ASP.NET. Este problema ocorre mesmo que o atributo Nomegrupo esteja definido para os controlos do tipo ' botão de opção ' .

Causa

Este problema ocorre porque o controlo de servidor de Repetidor implementa a interface INamingContainer , que requer que todos os controlos que estão aninhados dentro do mesmo tem de ter um nome exclusivo quando compostos em HTML (Hypertext Markup Language). Por conseguinte, o atributo de nome HTML de qualquer controlo de servidor subordinado processado é exclusivo.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo.

Mais Informação

HTML 3.2 e versões posteriores requerem que todos os controlos do botão de rádio que são mutuamente exclusivos têm o mesmo atributo de nome exclusivo. Uma vez que servidor controlos que estão dentro de um dependente Repetidor controlo tem de ter um nome exclusivo, o controlo HTML RadioButton processado não é mutuamente.

Tenha em atenção que o atributo Nomegrupo deve resolver este problema. Se definir o atributo de Nomegrupo , todos os controlos de tipo ' botão de opção ' devem processar o mesmo nome de atributo do HTML que foi especificado pelo atributo Nomegrupo do controlo de servidor. O comportamento esperado não ocorre porque o cliente exclusivo de atribuição de nomes de domínios substitui a utilização da propriedade GroupName .

Passos para reproduzir o problema

  1. Crie um novo projecto de aplicação Web do Microsoft Visual C# .NET.
  2. Na vista de estrutura, arraste um controlo de servidor Repetidor para a página de Webform1.aspx predefinida.
  3. Na vista HTML, adicione o seguinte <itemtemplate> código 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 página :
    protected String[] TestArray = new String[3];
    					
  6. Criar o projecto e, em seguida, visualizar a página no browser.
  7. Clique em cada controlo de tipo ' botão de opção ' individual para Certifique-se de que pode seleccioná-las sem alterar o valor de outros controlos do tipo ' botão de opção ' .

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )