none
Problema num form html com um botão asp com código c# RRS feed

  • Pergunta

  • Olá pessoal,

    Sou ainda amador e estou aqui com um problema.

    Eu tenho um form em html onde os campos la são validados pelo jquery.

    	<form id="form-reservation-sidebar" method="post" action="">
                         
                            <p class="select-width-220">
                            <label for="select-type-of-room">Tipo de Quarto:</label>
                                            <asp:DropDownList ID="DropDownListTipoQuarto" runat="server" CssClass="select-jquery" 
                                                DataSourceID="SqlDataSourceQuarto" DataTextField="tipo_quarto" 
                                                DataValueField="id_tipoquarto">
                                                <asp:ListItem>Selecione o tipo de quarto</asp:ListItem>
                                            </asp:DropDownList>
                                            <asp:SqlDataSource ID="SqlDataSourceQuarto" runat="server" 
                                                ConnectionString="<%$ ConnectionStrings:HotelConnectionString1 %>" 
                                                SelectCommand="SELECT * FROM [TiposQuartos]"></asp:SqlDataSource>
                                        </p>
    						<p>
    							<label for="input-check-in-date">Data de Check-in:<br /></label>
                                <asp:TextBox ID="tbCheckIn" 
                                    class="input-text input-date input-width-220 required pdate" value="DD/MM/AAAA" 
                                    runat="server"></asp:TextBox>
                                
    							</p>
    						
    						<p>
    							<label for="input-check-out-date">Data de Check-out:</label>
    							<asp:TextBox ID="tbCheckOut" 
                                    class="input-text input-date input-width-220 required pdate" value="DD/MM/AAAA" 
                                    runat="server"></asp:TextBox>
    						</p>
    						
    						<div class="column-sidebar-half-width">
    							<p class="select-width-90">
    								Adultos:&nbsp;
                                    <asp:DropDownList ID="DropDownListAdultos" class="select-jquery" runat="server">
                                        <asp:ListItem>1</asp:ListItem>
                                        <asp:ListItem>2</asp:ListItem>
                                        <asp:ListItem>3</asp:ListItem>
                                        <asp:ListItem>4</asp:ListItem>
                                        <asp:ListItem>5</asp:ListItem>
                                    </asp:DropDownList>
    							</p>
                                
    						</div>
    						
    						<div class="column-sidebar-half-width column-last">
    							<p class="select-width-90">
    								Crianças:&nbsp;
    
                                <asp:DropDownList ID="DropDownListCriancas" class="select-jquery" runat="server">
                                    <asp:ListItem>0</asp:ListItem>
                                    <asp:ListItem>1</asp:ListItem>
                                    <asp:ListItem>2</asp:ListItem>
                                    <asp:ListItem>3</asp:ListItem>
                                    <asp:ListItem>4</asp:ListItem>
                                    <asp:ListItem>5</asp:ListItem>
                                    <asp:ListItem>6</asp:ListItem>
                                </asp:DropDownList>
    							</p>
    						</div>
    
    						
    						<div class="clear"></div>
    						
    						<p>
    							<label for="input-e-mail">E-mail:<br /></label>
                                <asp:TextBox ID="tbEmail" class="input-text input-width-220 required email" runat="server"></asp:TextBox>
                                
    							
    						</p>
    
                                <asp:Button ID="btPesquisar" class="input-submit button-red aligncenter" 
                                    runat="server" Text="PESQUISAR!" onclick="btPesquisar_Click" />
    						
    						
    					
    					</form>

    Ao clicar no botão pesquisar os campos são validados ate aqui tudo bem.

    Dentro do form eu tenho objectos asp.net entre eles um botão onde eu fiz código c#, ao clicar no botão para guardar os dados preenchidos na session.

    Código do evento do botão

        protected void btPesquisar_Click(object sender, EventArgs e)
        {
            TimeSpan diff = Convert.ToDateTime(tbCheckOut.Text).Subtract(Convert.ToDateTime(tbCheckIn.Text));
            int TotalNoOfDays = diff.Days;
    
            Session["Dias"] = TotalNoOfDays;
            Response.Redirect("Quartos.aspx");
        }

    O problema é que o código que fiz para o botao não é executado.

    Alguém poderia ajudar?

    Obrigado ;)

    quarta-feira, 15 de agosto de 2012 18:48

Respostas

  • JrcN,

    O erro deve-se ao fato de seu form não possuir a tag runnat='server'.

    Você não pode fazer 3 coisas:

     1 - Colocar um form dentro de outro;

     2 - Retirar a tag runnat='server';

     3 - colocar atributos no Form como o Action, por exemplo;

    O 3, não é que não possa. Mas se não souber o q está fazendo, vai dar erro.

    Substitua o seu form para ficar EXATAMENTE como o Janderson sugeriu: <form id="form1" runat="server">.

    Se der qualquer erro após isso, conserte a origem do erro, que NÃO deverá ser o FORM.


    Rafael Santos

    Observações:
    1. Selecione a opção "Habilitar o Live Alerts por Padrão" nas suas configurações para que possa acompanhar em tempo real as atividades relacionadas a sua Thread;
    2. Não abandone sua Thread. Ao perguntar, fique atento às respostas; ao encontrar uma solução, compartilhe;
    3. As pessoas que dedicam seu tempo na busca por soluções para você não ganham nada em troca. Valorize-as e em forma de agradecimento pontue as respostas corretas.

    "Quem disse que não escrevo poesias? A diferença é que as minhas começam com using System;"

    • Marcado como Resposta JrcN sexta-feira, 17 de agosto de 2012 16:33
    quinta-feira, 16 de agosto de 2012 15:22
  • Tucão tenta colocar o atributo runat="server" na sua tag Form:

     <form id="form1" runat="server">


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta JrcN sexta-feira, 17 de agosto de 2012 16:34
    quarta-feira, 15 de agosto de 2012 19:56

Todas as Respostas

  • Mesmo se todas as validações tiverem OK(Se não tiver nenhum erro) ele não chama o evento?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 18:53
  • Não, é como se fizesse refresh a pagina e nao faz o evento.
    quarta-feira, 15 de agosto de 2012 19:00
  • Ta usando alguma biblioteca jquery pra fazer a validação?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 19:04
  • Sim

    Eu basicamente só tenho o form por causa das validações porque eu quero fazer a transferência de dados pela session do c#, agora é possível fazer as validações pela biblioteca jquery sem ser com o form? É outra pergunta.

    quarta-feira, 15 de agosto de 2012 19:08
  • Tucão, vc ta usando alguma outra biblioteca Jquery? pode descrever melhor o que você quer fazer também, não ficou muito claro.

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quarta-feira, 15 de agosto de 2012 19:15
  • Você pode utilizar os componentes de validação (validadores) do ASP.Net para isso.

    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    quarta-feira, 15 de agosto de 2012 19:39
  • Eu estou a fazer um trabalho em asp.net/C# em que o tema é para fazer reservas online para um hotel.

    Fiz download de um template na net para o meu website no qual já tinha as tais validações feitas pela biblioteca jquery.

    	<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>
    	<script src="js/jquery-ui.1.8.16.min.js" type="text/javascript"></script>
    	<script src="js/jquery.easing.1.3.js" type="text/javascript"></script>
    	<script src="js/sliders.js" type="text/javascript"></script>
    	<script src="js/superfish.js" type="text/javascript"></script>
    	<script src="js/pdate.js" type="text/javascript"></script>
    	<script src="js/jquery.datepick.pack.js" type="text/javascript"></script>
    	<script src="js/jquery.selectbox-0.1.3.min.js" type="text/javascript"></script>
    	<script src="js/jquery.validate.min.js" type="text/javascript"></script>
    	<script src="js/jquery.form.js" type="text/javascript"></script>
    	<script src="js/miscellaneous.js" type="text/javascript"></script>
    	<script type="text/javascript">
    	$(document).ready(function(){
    		full_width_slider(true, true, 5000, 1000); //parameters: autoplay: boolean, fade out arrow when no move: boolean, pause time: integer milliseconds, transition speed: integer milliseconds
    		$('#nav ul').superfish();
    		packages_slider();
    		testimonials_slider(); 
    		set_datepicker();		
    		set_select();
    		set_captcha(false);
    		validation();
    		jquery_miscellaneous();
    	});
    	</script>

    E inicialmente ele vinha assim com inputs

    <!-- begin form-reservation-sidebar -->
    					<form id="form-reservation-sidebar" method="post" action="reservation.php">
    					
    						<p class="select-width-220">
    							<label for="select-type-of-room">Type of room:</label>
    							<select id="select-type-of-room" class="select-jquery required" name="select-type-of-room">
    								<option value="">Select a type of room</option>
    								<option value="Single room">Single room</option>
    								<option value="Double room">Double room</option>
    								<option value="Twin room">Twin room</option>
    								<option value="Family room">Family room</option>
    								<option value="Deluxe room">Deluxe room</option>
    								<option value="Lough view suite">Lough view suite</option>
    							</select>
    						</p>
    						
    						<p>
    							<label for="input-check-in-date">Check-in date:</label>
    							<input id="input-check-in-date" class="input-text input-date input-width-220 required pdate" name="input-check-in-date" type="text" value="DD/MM/YYYY" />
    						</p>
    						
    						<p>
    							<label for="input-check-out-date">Check-out date:</label>
    							<input id="input-check-out-date" class="input-text input-date input-width-220 required pdate" name="input-check-out-date" type="text" value="DD/MM/YYYY" />
    						</p>
    						
    						<div class="column-sidebar-half-width">
    							<p class="select-width-90">
    								<label for="select-n-adults">Adults:</label>
    								<select id="select-n-adults" class="select-jquery" name="select-n-adults">
    									<option value="1">1</option>
    									<option value="2">2</option>
    									<option value="3">3</option>
    									<option value="4">4</option>
    									<option value="5">5</option>
    								</select>
    							</p>
    						</div>
    						
    						<div class="column-sidebar-half-width column-last">
    							<p class="select-width-90">
    								<label for="select-n-children">Children:</label>
    								<select id="select-n-children" class="select-jquery" name="select-n-children">
    									<option value="0">0</option>
    									<option value="1">1</option>
    									<option value="2">2</option>
    									<option value="3">3</option>
    									<option value="4">4</option>
    									<option value="5">5</option>
    									<option value="6">6</option>
    								</select>
    							</p>
    						</div>
    						
    						<div class="clear"></div>
    						
    						<p>
    							<label for="input-e-mail">E-mail:</label>
    							<input id="input-e-mail" class="input-text input-width-220 required email" name="input-e-mail" type="text" />
    						</p>
    						
    						<p id="captcha">
    							<label for="input-captcha">Type this code:</label>
    							<img src="captcha/CaptchaSecurityImages.php" alt="" />
    							<input id="input-captcha" class="input-text input-width-220 required" name="input-captcha" type="text" />
    						</p>
    						
    						<p>
    							<input type="submit" class="input-submit button-red aligncenter" value="SEND NOW!" />
    						</p>
    						
    						<p class="ajax-loader"></p>
    						
    					</form>
    					<!-- end form-reservation-sidebar -->

    mas como o trabalho é em asp.net/C# alterei os objectos de inputs para asp como também mostrei em cima

    <!-- begin form-reservation-sidebar -->
    
    					<form id="form-reservation-sidebar">
                         
                            <p class="select-width-220">
                            <label for="select-type-of-room">Tipo de Quarto:</label>
                                            <asp:DropDownList ID="DropDownListTipoQuarto" runat="server" CssClass="select-jquery" 
                                                DataSourceID="SqlDataSourceQuarto" DataTextField="tipo_quarto" 
                                                DataValueField="id_tipoquarto">
                                                <asp:ListItem>Selecione o tipo de quarto</asp:ListItem>
                                            </asp:DropDownList>
                                            <asp:SqlDataSource ID="SqlDataSourceQuarto" runat="server" 
                                                ConnectionString="<%$ ConnectionStrings:HotelConnectionString1 %>" 
                                                SelectCommand="SELECT * FROM [TiposQuartos]"></asp:SqlDataSource>
                                        </p>
    						<p>
    							<label for="input-check-in-date">Data de Check-in:<br /></label>
                                <asp:TextBox ID="tbCheckIn" 
                                    class="input-text input-date input-width-220 required pdate" value="DD/MM/AAAA" 
                                    runat="server"></asp:TextBox>
                                
    							</p>
    						
    						<p>
    							<label for="input-check-out-date">Data de Check-out:</label>
    							<asp:TextBox ID="tbCheckOut" 
                                    class="input-text input-date input-width-220 required pdate" value="DD/MM/AAAA" 
                                    runat="server"></asp:TextBox>
    						</p>
    						
    						<div class="column-sidebar-half-width">
    							<p class="select-width-90">
    								Adultos:&nbsp;
                                    <asp:DropDownList ID="DropDownListAdultos" class="select-jquery" runat="server">
                                        <asp:ListItem>1</asp:ListItem>
                                        <asp:ListItem>2</asp:ListItem>
                                        <asp:ListItem>3</asp:ListItem>
                                        <asp:ListItem>4</asp:ListItem>
                                        <asp:ListItem>5</asp:ListItem>
                                    </asp:DropDownList>
    							</p>
                                
    						</div>
    						
    						<div class="column-sidebar-half-width column-last">
    							<p class="select-width-90">
    								Crianças:&nbsp;
    
                                <asp:DropDownList ID="DropDownListCriancas" class="select-jquery" runat="server">
                                    <asp:ListItem>0</asp:ListItem>
                                    <asp:ListItem>1</asp:ListItem>
                                    <asp:ListItem>2</asp:ListItem>
                                    <asp:ListItem>3</asp:ListItem>
                                    <asp:ListItem>4</asp:ListItem>
                                    <asp:ListItem>5</asp:ListItem>
                                    <asp:ListItem>6</asp:ListItem>
                                </asp:DropDownList>
    							</p>
    						</div>
    
    						
    						<div class="clear"></div>
    						
    						<p>
    							<label for="input-e-mail">E-mail:<br /></label>
                                <asp:TextBox ID="tbEmail" class="input-text input-width-220 required email" runat="server"></asp:TextBox>
                                
    							
    						</p>
    						
    						<p id="captcha">
    							<label for="input-captcha">Type this code:</label>
    							<img src="captcha/CaptchaSecurityImages.php" alt="" />
    							<input id="input-captcha" class="input-text input-width-220 required" name="input-captcha" type="text" /></p>
    						
    						<p>
                                <asp:Button ID="btPesquisar" class="input-submit button-red aligncenter" 
                                    runat="server" Text="PESQUISAR!" onclick="btPesquisar_Click" />
    						
    						
    					
    					</form>
    					<!-- end form-reservation-sidebar -->

    O problema é o seguinte: se eu retirar o form as validações não funcionam e ai o evento do botão já funciona, se eu não retirar o form as validações funcionam mas o evento do botão C# não funciona.

    Aquilo que eu pretendo é: que seja possível funcionar as validações como mostrei na imagem em cima e que o código C# após os dados serem validados que esta no botão funcione também.

    Espero que tenha sido mais claro agora.

    Obrigado.

    quarta-feira, 15 de agosto de 2012 19:48
  • Sim é verdade, num trabalho que fiz anteriormente usei esses validadores.

    Nunca usei a biblioteca jQuery e o template ja trazia isso feito desta forma, apenas gostava de saber se é possível usar da maneira que eu tenho neste momento, caso não seja possivel irei usar os validadores do ASP.Net.

    quarta-feira, 15 de agosto de 2012 19:54
  • Tucão tenta colocar o atributo runat="server" na sua tag Form:

     <form id="form1" runat="server">


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta JrcN sexta-feira, 17 de agosto de 2012 16:34
    quarta-feira, 15 de agosto de 2012 19:56
  • Já tinha tentado isso também, mas da este erro

    form-reservation-sidebar' is not a valid identifier.

    quarta-feira, 15 de agosto de 2012 21:57
  • JrcN,

    O erro deve-se ao fato de seu form não possuir a tag runnat='server'.

    Você não pode fazer 3 coisas:

     1 - Colocar um form dentro de outro;

     2 - Retirar a tag runnat='server';

     3 - colocar atributos no Form como o Action, por exemplo;

    O 3, não é que não possa. Mas se não souber o q está fazendo, vai dar erro.

    Substitua o seu form para ficar EXATAMENTE como o Janderson sugeriu: <form id="form1" runat="server">.

    Se der qualquer erro após isso, conserte a origem do erro, que NÃO deverá ser o FORM.


    Rafael Santos

    Observações:
    1. Selecione a opção "Habilitar o Live Alerts por Padrão" nas suas configurações para que possa acompanhar em tempo real as atividades relacionadas a sua Thread;
    2. Não abandone sua Thread. Ao perguntar, fique atento às respostas; ao encontrar uma solução, compartilhe;
    3. As pessoas que dedicam seu tempo na busca por soluções para você não ganham nada em troca. Valorize-as e em forma de agradecimento pontue as respostas corretas.

    "Quem disse que não escrevo poesias? A diferença é que as minhas começam com using System;"

    • Marcado como Resposta JrcN sexta-feira, 17 de agosto de 2012 16:33
    quinta-feira, 16 de agosto de 2012 15:22