Array
(
)

"DropDownList1.CausesValidation=False" e o "RequiredFieldValidator" simplesmente não respeita.

Bruno
   - 24 jul 2010

Olá pessoal,
Observem o código abaixo:
<body>    <form id="form1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server">      <asp:ListItem></asp:ListItem>      <asp:ListItem>Item 1</asp:ListItem>      <asp:ListItem>Item 2</asp:ListItem>      <asp:ListItem>Item 3</asp:ListItem>    </asp:DropDownList>    <br />    <br />    <asp:Button ID="Button1" runat="server" Text="Button" />    <br />    <br />    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"       ControlToValidate="DropDownList1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
    </form></body>
Eu preciso que enquanto o usuário 'mexe' no  DropDownList1 o RequiredFieldValidator1 fique quietinho no canto dele sem amolar ninguém.
Porém quando eu clicar no botão, o RequiredFieldValidator1 se encarregue de fazer o trabalho dele: não deixar acontecer o PostBack se um item não estiver escolhido no DropDownList1. Até aqui tudo bem isso ele faz direito.
Agora experimentem escolher um item no DropDownList1 e depois volte ao primeiro item . Ao RequiredFieldValidator1 'mostrando a cara' mesmo com o  DropDownList1.CausesValidation = False;

_______________________________________________________________________________
P.S.: Estou colocando um exemplo bem simples porque eu simplesmente isolei o problema que eu estou tendo em minha aplicação, bem mais complexa.
O que realmente ocorre é que o AutoPostBack do DropDownList fica True. Assim, quando eu seleciono um item da lista, porém volto ao primeiro item (vazio) causa um efeito "pisca" no RequiredFieldValidator1. Fiquei horas pesquisando sobre isto na net e encontrava problemas parecidos somente em foruns em inglês. Com a ajuda de tradutor online fiz as indicações recomendadas e nada resolveu. A recomendação mais presente era setar o InitialValue do RequiredFieldValidator para '-1' e o Value do ListItem[0] para '-1' também. Porem já fiz isto e não adiantou.
Por favor, espero que alguém me ajude!!!