cintiadel 0 Denunciar post Postado Outubro 24, 2008 tenho um textbox que deve ser preenchido somente se o valor selecionado no dropdown for Sim que tem valor 1, qual validador devo usar para conseguir essa validação? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Outubro 24, 2008 Neste caso eu não conheço uma forma de configurar o Validator teria que ser feito na mão mesmo, via código. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Outubro 26, 2008 Neste caso eu não conheço uma forma de configurar o Validator teria que ser feito na mão mesmo, via código. Abraços... entao eu fiz em javascript, mas queria q ficasse como o restante das validações pq tah aparacendo a caixinha de mensagem e queria só um alert ao lado do campo como nos outros Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 5, 2008 seria mais fácil fazer isso sem validator... basta mudar a propriedade 'Enable' do textBox de acordo com o item selecionado. Este terá um teste logico dentro do evento 'SelectedIndexChanged' do drop, que verifica qual item está selecionado ou não e modifica a propriedade do textBox assim: <asp:TextBox ID="TextBox1" runat="server" Enabled="false" BackColor="white"></asp:TextBox > <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem Value="1">Sim</asp:ListItem> <asp:ListItem Value="2">Não</asp:ListItem> <asp:ListItem Selected="True" Value="0">selecione</asp:ListItem> </asp:DropDownList> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { if (DropDownList1.SelectedValue == "1") { TextBox1.BackColor = Color.Beige; TextBox1.Enabled = true; } else { TextBox1.BackColor = Color.White; TextBox1.Text = String.Empty; TextBox1.Enabled = false; } } espero q ajude.... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 seria mais fácil fazer isso sem validator... basta mudar a propriedade 'Enable' do textBox de acordo com o item selecionado. Este terá um teste logico dentro do evento 'SelectedIndexChanged' do drop, que verifica qual item está selecionado ou não e modifica a propriedade do textBox assim: <asp:TextBox ID="TextBox1" runat="server" Enabled="false" BackColor="white"></asp:TextBox > <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem Value="1">Sim</asp:ListItem> <asp:ListItem Value="2">Não</asp:ListItem> <asp:ListItem Selected="True" Value="0">selecione</asp:ListItem> </asp:DropDownList> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { if (DropDownList1.SelectedValue == "1") { TextBox1.BackColor = Color.Beige; TextBox1.Enabled = true; } else { TextBox1.BackColor = Color.White; TextBox1.Text = String.Empty; TextBox1.Enabled = false; } } espero q ajude.... muito boa sua sugestão tbm, mas eu quero mesmo um alerta ao lado do text box, tipo do validation Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 bem..eu gosto muito de utilizar o customValidator.... assim: <div> <asp:Label ID="Label1" runat="server" Visible="false"></asp:Label><br /> <asp:TextBox ID="TextBox1" runat="server" Enabled="false" BackColor="white"></asp:TextBox> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem Value="1">Sim</asp:ListItem> <asp:ListItem Value="2">Não</asp:ListItem> <asp:ListItem Selected="True" Value="0">selecione</asp:ListItem> </asp:DropDownList> <asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="CustomValidator1_ServerValidate" Display="Static"></asp:CustomValidator> </div> protected void CustomValidator1_ServerValidate(object sender, ServerValidateEventArgs e) { if (DropDownList1.SelectedValue == "1") { TextBox1.Enabled = true; Label1.Visible = true; Label1.Text = "Valor válido."; e.IsValid = true; } else { TextBox1.Enabled = false; CustomValidator1.Text = "Informe 'SIM' para habilitar o text box."; //parte comentada seria utilizada no caso de um ValidatorSammary //CustomValidator1.Text = "*"; //CustomValidator1.ErrorMessage = "Informe 'SIM'."; e.IsValid = false; } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { CustomValidator1.Validate(); } c ainda não for o que você quer, só falar! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 está dando o seguinte erro: Server Error in '/Testes' Application. -------------------------------------------------------------------------------- Unable to cast object of type 'System.EventArgs' to type 'System.Web.UI.WebControls.ServerValidateEventArgs'. Bom o seu exemplo é C#, correto? Eu preciso em VB, mas qto a isso eu converti, mas tah dando erro. Segue meu código abaixo: Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate If True Then If ddl_necessidades.SelectedValue = "1" Then TextBox1.Enabled = True args.IsValid = True End If If True Then TextBox1.Enabled = False args.IsValid = False End If End If End Sub [code] [code] Protected Sub ddl_necessidades_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_necessidades.SelectedIndexChanged CustomValidator1.Validate() End Sub preciso também que esse evento só aconteça ao clicar no button Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 o meu exemplo é de C# sim, eu nunca programei em VB mas, fui tentar passar meu código.... quando estava passando, percebi que você fez dois ifs ao inves de um if e um else, então fica assim.... Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click CustomValidator1.Validate() 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 Label1.Visible = True Label1.Text = "Valor Válido!" args.IsValid = True End If Else TextBox1.Text = String.Empty TextBox1.Enabled = False CustomValidator1.Text = "Informe 'SIM' para habilitar o text box." args.IsValid = False End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 consegui fazer funcionar mas preciso saber como faço pra disparar isso só no evento do botão tentei mas n consegui, da aquele erro que eu relatei acima. por favor conto com sua ajuda Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 consegui fazer funcionar mas preciso saber como faço pra disparar isso só no evento do botão tentei mas n consegui, da aquele erro que eu relatei acima. por favor conto com sua ajuda como nunca tinha prog em VB antes, não sabia bem como funcionava a estrutura if e fiz como no c#, na verdade percebi que você não fecha o else, ele está dentro de um if... o cod que eu t dei já faz o que eu t falei... so valida quando aperta o botão.. mas pra funcionar direitinho tem q trocar o codigo do CustomValidator por este aki: 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 Label1.Visible = True Label1.Text = "Valor Válido!" 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 espero que seja isso... Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 outra coisa que esqueci de falar... c não está validando só quando você da um click no botão, pode ser q algum controle esteja com a propriedade 'AutoPostBack' igual a 'True' ou algum lugar do codigo esteja validando a pag quando esta dá post, ai o custom faz a validação... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 outra coisa que esqueci de falar... c não está validando só quando você da um click no botão, pode ser q algum controle esteja com a propriedade 'AutoPostBack' igual a 'True' ou algum lugar do codigo esteja validando a pag quando esta dá post, ai o custom faz a validação... pergunta ele só vai deixar passar para a próxima página, se eu selecionar a opção sim? e onde eu devo por o redirect? Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 outra coisa que esqueci de falar... c não está validando só quando você da um click no botão, pode ser q algum controle esteja com a propriedade 'AutoPostBack' igual a 'True' ou algum lugar do codigo esteja validando a pag quando esta dá post, ai o custom faz a validação... pergunta ele só vai deixar passar para a próxima página, se eu selecionar a opção sim? não estou entendendo... você não disse que queria validar a edição de TextBox? isso que o código acima faz... c você está usando isso pra pag, e está redirecionando você tem q colocar um if e mandar validar a pag com o customValidator... c for valida você redireciona ai ele so vai passar pra prox pag, quando você der um click no botão e o dd tiver com a opção sim selecionada Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 outra coisa que esqueci de falar... c não está validando só quando você da um click no botão, pode ser q algum controle esteja com a propriedade 'AutoPostBack' igual a 'True' ou algum lugar do codigo esteja validando a pag quando esta dá post, ai o custom faz a validação... pergunta ele só vai deixar passar para a próxima página, se eu selecionar a opção sim? não estou entendendo... você não disse que queria validar a edição de TextBox? isso que o código acima faz... c você está usando isso pra pag, e está redirecionando você tem q colocar um if e mandar validar a pag com o customValidator... c for valida você redireciona ai ele so vai passar pra prox pag, quando você der um click no botão e o dd tiver com a opção sim selecionada o caso é o seguinte eu tenho um formulario com varios campos requeridos que eu valido com requeriedfieldvalidator, inclusive esse dropdown.esse dropdown é se a pessoa possue necessidade especial, se ela selecionar q sim, deve habilitar e obriga-lá a prencher o textbox com a necessidade dela, senão deve continuar, e fazer o cadastro ao clicar no botão e redirecionar para a página de agradecimento. espero ter sido clara obrigada Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 coloca o teste do validator no botão que redireciona, mas testa antes c retornou false ou true (e.IsValid), é só você ir adcionando as condições no evento do botão... você deve lembrar q o redirecionamento é: response.redirect("url",false)... c não, vai dar exceção Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 6, 2008 coloca o teste do validator no botão que redireciona, mas testa antes c retornou false ou true (e.IsValid), é só você ir adcionando as condições no evento do botão... você deve lembrar q o redirecionamento é: response.redirect("url",false)... c não, vai dar exceção já tentei colocar no botao como disse e da esse erro: Unable to cast object of type 'System.EventArgs' to type 'System.Web.UI.WebControls.ServerValidateEventArgs'. como devo fazer essa verificação q você falou? de qualquer forma ele vai redirecionar para essa página pq o usuário n é obrigado a preencher o textbox, ele obrigado a selecionar uma opcao no dropdown, e se selecionar sim ai ele tem que obrigar a preencher o textbox, e no final de tudo sempre redirecionar a página para a de agradecimento pelo cadastro muito obrigada Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 estranho.... eu fiz este codigo e testei antes de enviar.. não deu este erro.... este erro quer dizer que você está igualando em algum lugar tipos diferentes sem conversão ou q não é possível a conversão.... depois posta seu código para eu testar aki no VisualStudio 2008.... Compartilhar este post Link para o post Compartilhar em outros sites
ebrasil 0 Denunciar post Postado Novembro 6, 2008 a validação da pág é Page.Validate() if(Page.IsValid) { //ações } pode ser feita tambem a validação dos filtros (controles de um grupo de validação) Page.Validate("nomeGrupo") if(Page.IsValid) { //ações } Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Novembro 7, 2008 estranho.... eu fiz este codigo e testei antes de enviar.. não deu este erro.... este erro quer dizer que você está igualando em algum lugar tipos diferentes sem conversão ou q não é possível a conversão.... depois posta seu código para eu testar aki no VisualStudio 2008.... validacao.aspx <div> <asp:DropDownList ID="DropDownList1" runat="server" Font-Size="X-Small" Height="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"/> </div> validacao.aspx.vb 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 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 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 bom... 1 - você não determinou qual controle o CustomValidator deve validar.... 2 - você não fez um evento e associou no code para o CustomValidator 3 - já entendi pq esta dando erro de conversão.... você não leu meu codigo direito: o args.IsValid é do evento do CustomValidator.... você fez isso com o args do tipo do botão... acho q nem tem essa propriedade para ele (args do botão) volte a ler o ultimo codigo q eu postei e faça do mesmo jeito que eu fiz, lendo tambem como configurei os controles na parte web..... qualquer coisa você me fala Compartilhar este post Link para o post Compartilhar em outros sites