ebrasil 0 Denunciar post Postado Novembro 7, 2008 so mais uma coisa.... ele tem qvalidar o controle ANTES dos ifs... ai você coloca o q acontece com o args.IsValid do CUSTOMVALIDATOR se ele for igual a true (valido) . na verdade você pos o cod do custom validator no evento do botão...... c não... como q ele vai validar c você já fez exec tudo q tinha q ser depois d o custom testar s é verd ou fals? outra coisa... você quer q executa o q quando aperta o botão? você não pos nenhum evento para este (web). Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 so mais uma coisa.... ele tem qvalidar o controle ANTES dos ifs... ai você coloca o q acontece com o args.IsValid do CUSTOMVALIDATOR se ele for igual a true (valido) . na verdade você pos o cod do custom validator no evento do botão...... c não... como q ele vai validar c você já fez exec tudo q tinha q ser depois d o custom testar s é verd ou fals? outra coisa... você quer q executa o q quando aperta o botão? você não pos nenhum evento para este (web). socorroooo....rsrsrsvamos la denovo... deixei o meu código assim, pode me ajudar a corrigi-lo? <div> <asp:DropDownList ID="DropDownList1" runat="server" Font-Size="X-Small" Heigh="20px"> <asp:ListItem Value="0" Selected="True">SELECIONE</asp:ListItem> <asp:ListItem Value="1">SIM</asp:ListItem> <asp:ListItem Value="2">NÃO</asp:ListItem> </asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1" ErrorMessage="RequiredFieldValidator" Display="Dynamic"></asp:RequiredFieldValidator> <br /> <asp:TextBox ID="TextBox1" runat="server" Enabled="false" BackColor="white"></asp:TextBox> <asp:CustomValidator ID="CustomValidator1" runat="server"></asp:CustomValidator> <br /> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="DropDownList1_SelectedIndexChanged"/> </div> Partial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles Button1.Click Page.Validate() If (Page.IsValid) Then End If Response.Redirect("Obrigada.aspx") End Sub Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate If True Then If DropDownList1.SelectedValue = "1" Then TextBox1.Enabled = True args.IsValid = True Else TextBox1.Text = String.Empty TextBox1.Enabled = False CustomValidator1.Text = "Informe 'SIM' para habilitar o text box." args.IsValid = False End If End If End Sub Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged, Button1.Click CustomValidator1.Validate() End Sub End Class Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 7, 2008 olha... não precisa do evento do drop... pode colocar no evento do botão onde você pos Page.Validate() substituir por CustomValidator1.Validate() você não estacolocando para o controle do botão nenhum evento onclick="nomedoEventodobotão" e nem pra custom onServerValidate="nomedoEventoDoCustom" desculpe... não expliquei pq o vento do drop é errado... - c você manda validar quando o usuário mudar a opção do drop, o botão fica inutilizado não? - outra coisa... como eu ja disse.... o correto é response.redirect("UrlDaPag", false) se não vai dar exceção, mas você so vai perceber isso (a exceção) se colocar um bloco try catch, entendeu? caso contrário, vai dar exceção e você nem vai saber... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 agora ele esta indo para a pagina obrigada, mesmo sem eu selecionar nda, e nem preencher, e tbm nao mostra nem requieredfieldvalidator e nem o custom validator. mas uma vez como ficou o codigo: Partial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click CustomValidator1.Validate() Response.Redirect("Obrigada.aspx", False) End Sub Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate If True Then If DropDownList1.SelectedValue = "1" Then TextBox1.Enabled = True args.IsValid = True Else TextBox1.Text = String.Empty TextBox1.Enabled = False CustomValidator1.Text = "Informe 'SIM' para habilitar o text box." args.IsValid = False End If End If End Sub End Class <asp:DropDownList ID="DropDownList1" runat="server" Font-Size="X-Small" Heigh="20px"> <asp:ListItem Value="0" Selected="True">SELECIONE</asp:ListItem> <asp:ListItem Value="1">SIM</asp:ListItem> <asp:ListItem Value="2">NÃO</asp:ListItem> </asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1" ErrorMessage="RequiredFieldValidator" Display="Dynamic"></asp:RequiredFieldValidator> <asp:TextBox ID="TextBox1" runat="server" Enabled="false" BackColor="white"></asp:TextBox> <asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/> Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 7, 2008 é pq você manda validar mas não manda dar redirect apenas c for verdadeiro.... mas o resto est certo: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click CustomValidator1.Validate() if CustomValidator.IsValid then Response.Redirect("Obrigada.aspx", False) End Sub tenta isso e me fala.... dica: quando for programar, pelo menos no VisualStudio tem como fazer isso, coloque break points em pontos estrategicos no codigo e mande exec, assim você pode ver como o cod esta sendo exec, isso ajuda bastante Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 é pq você manda validar mas não manda dar redirect apenas c for verdadeiro.... mas o resto est certo: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click CustomValidator1.Validate() if CustomValidator.IsValid then Response.Redirect("Obrigada.aspx", False) End Sub tenta isso e me fala.... dica: quando for programar, pelo menos no VisualStudio tem como fazer isso, coloque break points em pontos estrategicos no codigo e mande exec, assim você pode ver como o cod esta sendo exec, isso ajuda bastante só q realmente é pra redirecionar, mas ele tem q obrigar a selecionar uma opção no dropdown e tbm n aparece em hipotese alguma os validadores q eu coloquei Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 7, 2008 exato.... só vai redirecionar c a pessoa tiver escolhido sim, pq no custom verifica c foi seleciondo a opção sim.... c nõ foi ele retorna false e ai não redireciona so q para os required fild validators q você colocou interferem pq quando eles validam (page.validate() if page.IsValid) há primeiro uma validação no cliente antes de entrar no evento do botão...ai você não vai conseguir sair do erro caso page.IsValid seja false.... você tem d desabilitar a validação no cliente mas quando mas c ele deve escolher 'sim' ou 'não' obrigatoriamente é só você colocar mais uma verificação no custom ué Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 exato.... só vai redirecionar c a pessoa tiver escolhido sim, pq no custom verifica c foi seleciondo a opção sim.... c nõ foi ele retorna false e ai não redireciona mas c ele deve escolher 'sim' ou 'não' obrigatoriamente é só você colocar mais uma verificação no custom ué sabe o q eu reparei ele n ta deixando digitar no combo Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 7, 2008 olha... é uma tela de cadastro com outros campos obrigatorios e no meio disso tem o drop com text box pra validação c estiver tudo certo, passa para a prox pag... eu não to fazendo nada agora.... vou fazer uma pg de cadastro desse jeito e você adequa ai à sua pag... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 olha... é uma tela de cadastro com outros campos obrigatorios e no meio disso tem o drop com text box pra validação c estiver tudo certo, passa para a prox pag... eu não to fazendo nada agora.... vou fazer uma pg de cadastro desse jeito e você adequa ai à sua pag... so lembrando q o drop tbm é obrigatorio, se for selecionado sim no dropdown, ele n deve ir pra proxima pagina antes de preencher o textbox, caso contrario ele vai para a proxima pagina Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 7, 2008 <form id="form1" runat="server"> <asp:ValidationSummary ID="smvErros" runat="server" /> <table style="border-style: double; border-color: #66FFFF; width: 500px; background-color: #CCFFFF; color: #3366FF;"> <tr align="center" height="50px"> <td colspan="2" style="border-color: #66FFFF; border-style: none none double none"> <asp:Label ID="lblTitulo" runat="server" Text="Cadastro" Font-Bold="True" Font-Size="25px"></asp:Label> </td> </tr> <tr height="50px"> <td align="right" style="border-color: #66FFFF; border-style: none double double none"> <asp:Label ID="lblNome" runat="server" Text="* Nome:" Font-Bold="True"></asp:Label> </td> <td align="left" style="border-color: #66FFFF; border-style: none none double none"> <asp:TextBox ID="txtNome" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvNome" runat="server" ErrorMessage="Campo Nome é obrigatório" Text="*" Display="None" ControlToValidate="txtNome">*</asp:RequiredFieldValidator> </td> </tr> <tr height="50px"> <td align="right" class="style1" style="border-color: #66FFFF; border-style: none double double none"> <asp:Label ID="lblSexo" runat="server" Text="Sexo:" Font-Bold="True"></asp:Label> </td> <td align="left" class="style1" style="border-color: #66FFFF; border-style: none none double none"> <asp:RadioButtonList ID="rblSexo" runat="server" RepeatDirection="Horizontal" Font-Bold="True"> <asp:ListItem Selected="True" Value="0">Feminino</asp:ListItem> <asp:ListItem Value="1">Masculino</asp:ListItem> </asp:RadioButtonList> </td> </tr> <tr height="50px"> <td align="right" style="border-color: #66FFFF; border-style: none double double none"> <asp:Label ID="lblIdade" runat="server" Text="Idade:" Font-Bold="True"></asp:Label> </td> <td align="left" style="border-color: #66FFFF; border-style: none none double none"> <asp:TextBox ID="txtIdade" runat="server"></asp:TextBox> </td> </tr> <tr height="50px"> <td align="right" style="border-color: #66FFFF; border-style: none double double none"> <asp:Label ID="lblNecessidEspecial" runat="server" Text="* Necessidade Especial:" Font-Bold="True"></asp:Label> </td> <td align="left" style="border-color: #66FFFF; border-style: none none double none"> <asp:DropDownList ID="ddlNecessidEspecial" runat="server" AutoPostBack="True" ForeColor="#0066FF"> <asp:ListItem Selected="True" Value="0">Selecione</asp:ListItem> <asp:ListItem Value="1">Sim</asp:ListItem> <asp:ListItem Value="2">Não</asp:ListItem> </asp:DropDownList> <asp:CustomValidator ID="cmvNecessidadeEsp" runat="server" ControlToValidate="ddlNecessidEspecial" ErrorMessage="Campo Necessidade Especial deve ser selecionado.">*</asp:CustomValidator> <asp:TextBox ID="txtNecessidEspecial" runat="server" Enabled="False"></asp:TextBox> <asp:CustomValidator ID="cmvTipoNescEsp" runat="server" ControlToValidate="txtNecessidEspecial" ErrorMessage="O tipo de necessidade não foi informado." ValidateEmptyText="True">*</asp:CustomValidator> </td> </tr> <tr height="50px"> <td colspan="2" align="center"> <asp:Button ID="btnSalvar" runat="server" Text="Salvar" /> </td> </tr> </table> </form> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then LimpaCampos() End If End Sub Protected Sub btnSalvar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSalvar.Click Page.Validate() cmvTipoNescEsp.Validate() If Page.IsValid And cmvTipoNescEsp.IsValid Then Response.Redirect("~/Obrigada.aspx", False) End If End Sub Protected Sub ddlNecessidEspecial_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlNecessidEspecial.SelectedIndexChanged If ddlNecessidEspecial.SelectedValue = "1" Then txtNecessidEspecial.Enabled = True Else txtNecessidEspecial.Text = String.Empty txtNecessidEspecial.Enabled = False End If End Sub Protected Sub LimpaCampos() txtIdade.Text = String.Empty txtNecessidEspecial.Text = String.Empty txtNome.Text = String.Empty ddlNecessidEspecial.ClearSelection() rblSexo.ClearSelection() End Sub Protected Sub cmvTipoNescEsp_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cmvTipoNescEsp.ServerValidate If ddlNecessidEspecial.SelectedValue = "1" And txtNecessidEspecial.Text = String.Empty Then args.IsValid = False Else args.IsValid = True End If End Sub Protected Sub cmvNecessidadeEsp_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cmvNecessidadeEsp.ServerValidate If ddlNecessidEspecial.SelectedValue = "0" Then args.IsValid = False Else args.IsValid = True End If End Sub bom... pelo q eu entendi é isso q você quer.... este exemplo está funcionado... copia e testa antes d colocar no seu prog Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 10, 2008 bom... pelo q eu entendi é isso q você quer.... este exemplo está funcionado... copia e testa antes d colocar no seu prog primeiro eu gostaria de agradecer pela paciência e pela ajuda. era isso mesmo que eu precisava, já testei e tá funcionando agora vou aplicar ao meu código, espero que de tudo certo. muito obrigada por tudo Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 10, 2008 bom... pelo q eu entendi é isso q você quer.... este exemplo está funcionado... copia e testa antes d colocar no seu prog tire só mais uma dúvida minha quanto essa validação ao clicar em salvar eu já quero q apareça todos os campos q são requeridos, eu n sei tem haver com o tipo de validação, mas só aparece o do dropdown necessidade e do textbox desc_nec depois que eu preencho todos os outros e dou salvar, ai ele volta e me da o alerta desse campo, já as outras validações da página aparecem mesmo q eu n digite nda e clique em salvar. Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 11, 2008 este é o funcionamento normal dos validators... c você quiser a avlidação simultânea: - coloque ValidationGroups para os validatores (é uma propriedade dos validators) : coloque o mesmo grupo para todos - se ainda assim não houver validação simultânea: coloque um grupo para os que são validados mesmo sem o botão salvar e outro para os do ddl. Antes do if que verifica c são validos, onde você manda validar, mande fazer a validação dos dois grupos: page.validate("nomeDoGrupo1") page.validate("nomeDoGrupo2") - quanto a estar fazendo a verificação no cliente logo q você digita: está exibindo msg? pq o normal é so aparecer um * quando você sai do campo, e quando você aperta o botão salvar, exibir a msg. c já estiver exibindo msg, pode ser q o campo esteja com a propriedade AutoPostBack = true (o Default é false) q bom q você conseguiu resolver o problema... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 11, 2008 este é o funcionamento normal dos validators... c você quiser a avlidação simultânea: - coloque ValidationGroups para os validatores (é uma propriedade dos validators) : coloque o mesmo grupo para todos - se ainda assim não houver validação simultânea: coloque um grupo para os que são validados mesmo sem o botão salvar e outro para os do ddl. Antes do if que verifica c são validos, onde você manda validar, mande fazer a validação dos dois grupos: page.validate("nomeDoGrupo1") page.validate("nomeDoGrupo2") - quanto a estar fazendo a verificação no cliente logo q você digita: está exibindo msg? pq o normal é so aparecer um * quando você sai do campo, e quando você aperta o botão salvar, exibir a msg. c já estiver exibindo msg, pode ser q o campo esteja com a propriedade AutoPostBack = true (o Default é false) q bo q você conseguiu resolver o problema... Abraços para todos os campos aparece normalmentea validação, mas algo estranho ainda esta acontecendo com o CustomValidator, pq ele não aparece se eu n preencher os outros campos, já verifiquei essa a propriedade está como false. E o campo textbox tah habilitado, mesmo qdo eu seleciono a opção nao. E está correto como me ensinou: Protected Sub ddl_necessidades_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_necessidades.SelectedIndexChanged If ddl_necessidades.SelectedValue = "1" Then txt_desc_nec.Enabled = True Else txt_desc_nec.Text = String.Empty txt_desc_nec.Enabled = False End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 11, 2008 preciso q o evento do select do dropdown seja carregado no load da página e n consigo, ja tentei colocar o codigo a cima no load mas n funciona, sabe como eu posso chamar ele la? Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 13, 2008 olha.. experimenta colocar no ddl, o item 'selecione' como selecionado (padrão) q aí ja começa selecionado (se for isso q você quer) e experimenta colocar a propriedade do textbox que você quer com a propriedade enabled = false. mas o evento do drop ddl só é ativado quando a pessoa seleciona algo (por isso o tipo de evento é selected index changed)... c você colocar o estdo do textbox como desativado como padrão... ai so vai habilitar quando a pessoa escolher sim.... quanto ao custom.... existem campos obrigatórios na tela? Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 14, 2008 olha.. experimenta colocar no ddl, o item 'selecione' como selecionado (padrão) q aí ja começa selecionado (se for isso q você quer) e experimenta colocar a propriedade do textbox que você quer com a propriedade enabled = false. mas o evento do drop ddl só é ativado quando a pessoa seleciona algo (por isso o tipo de evento é selected index changed)... c você colocar o estdo do textbox como desativado como padrão... ai so vai habilitar quando a pessoa escolher sim.... quanto ao custom.... existem campos obrigatórios na tela? o dropdown já está com essa propriedade : <asp:ListItem Selected="True" Value="">Selecione</asp:ListItem> e ele até funciona, mas só quando eu clico no botão e não ao selecionar, como acontece no exemplo que me mandou, e o código está no evento correto q é o selectedIndexChanged em relação ao custom, existe sim diversos campos obrigatórios na tela. Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 24, 2008 acho q é pq não adianta so colocar o evento... a propriedade do ddl chamada autoPostBack tem c ser true (padrão é false)....pq so c não so vai ativar com o opt do botão... q ativa (no caso) o selected index changed Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 24, 2008 acho q é pq não adianta so colocar o evento... a propriedade do ddl chamada autoPostBack tem c ser true (padrão é false)....pq so c não so vai ativar com o opt do botão... q ativa (no caso) o selected index changedeu ja coloquei a propriedade autoPostBack como True e mesmo assim n funciona Compartilhar este post Link para o post Compartilhar em outros sites