RafaelLN 0 Denunciar post Postado Maio 11, 2016 Olá pessoal, estou passando por um caso muito curioso, criei uma página que basicamente são duas checkboxlist, calendário, um textbox com um contador de caracteres em Javascript, e dois botões, um deles pra gravar e o outro redireciona pra outra página. A página funciona porém o botão gravar só funciona no segundo clique! (o botão de redirecionar funciona normal). Já tentei sem o contador em javascript, sem o calendário... mas mesmo assim o botão de gravar só funciona no segundo clique. help? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Maio 12, 2016 Você poderia postar um trecho do código e a sua aplicação por favor? Compartilhar este post Link para o post Compartilhar em outros sites
RafaelLN 0 Denunciar post Postado Maio 12, 2016 ah desculpe é que postei na pressa ontem. esses são os elementos da página .aspx, acredito que o problema esteja por aqui em algum lugar... Notei que ao clicar no botão na primeira vez a página dá uma piscadinha... // a função em JS ficou assim function limite_textarea(valor) { quant = 1000; total = valor.length; if (total <= quant) { resto = quant - total; document.getElementById('cont').innerHTML = resto; } else { document.getElementById('TextBox1').value = valor.substr(0, quant); } } //fornece o ano como paramentro para prenchimento das checkboxlist <asp:DropDownList ID="lis_ano" runat="server" AutoPostBack="True"> Selecione o ano:<asp:ListItem></asp:ListItem> <asp:ListItem Value="2">2° ano</asp:ListItem> <asp:ListItem Value="3">3° ano</asp:ListItem> <asp:ListItem Value="4">4° ano</asp:ListItem> <asp:ListItem Value="5">5° ano</asp:ListItem> <asp:ListItem Value="6">6° ano</asp:ListItem> <asp:ListItem Value="7">7° ano</asp:ListItem> <asp:ListItem Value="8">8° ano</asp:ListItem> <asp:ListItem Value="9">9° ano</asp:ListItem> <asp:ListItem Value="10">1° EM</asp:ListItem> <asp:ListItem Value="11">2° EM</asp:ListItem> <asp:ListItem Value="12">3° EM</asp:ListItem> </asp:DropDownList><br /> //as duas checkboxlist são preenchidas com as informações da base de dados Selecione a turma:<asp:CheckBoxList ID="lis_tur" runat="server" DataSourceID="SqlDataSource1" DataTextField="turma" DataValueField="turma" RepeatDirection="Horizontal"> </asp:CheckBoxList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:* %>" SelectCommand="SELECT * FROM [ano_turma] WHERE ([ano] = @ano) ORDER BY [turma]"> <SelectParameters> <asp:ControlParameter ControlID="lis_ano" Name="ano" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> <br /> Selecione a matéria:<asp:CheckBoxList ID="lis_disc" runat="server" DataSourceID="SqlDataSource2" DataTextField="disciplina" DataValueField="disciplina" RepeatDirection="Horizontal" > </asp:CheckBoxList> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:* %>" SelectCommand="SELECT * FROM [ano_disciplina] WHERE ([ano] = @ano) ORDER BY [disciplina]"> <SelectParameters> <asp:ControlParameter ControlID="lis_ano" Name="ano" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> //calendário <asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#999999" CellPadding="4" DayNameFormat="Shortest" ForeColor="Black" Height="300px" Width="300px" Style="text-align: center"> <DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" /> <NextPrevStyle VerticalAlign="Bottom" /> <OtherMonthDayStyle ForeColor="#808080" /> <SelectedDayStyle BackColor="#F4792B" Font-Bold="True" ForeColor="White" /> <SelectorStyle BackColor="#CCCCCC" /> <TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" /> <TodayDayStyle BackColor="#3AB54A" ForeColor="Black" /> <WeekendDayStyle BackColor="#0056A1" /> </asp:Calendar> //textbox <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" Height="300px" MaxLength="1000" TextMode="MultiLine" Width="450px" onkeyup="limite_textarea(this.value)" ></asp:TextBox> //botoes <asp:Button ID="Button2" runat="server" OnClick="gravae" Text="Gravar" /> <asp:Button ID="Button3" runat="server" OnClick="alterar" Text="Mostrar Lições" /> evento do botão gravar no code behind (.cs) protected void gravae(object sender, EventArgs e) { int ano = int.Parse(lis_ano.SelectedValue); SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["..."].ConnectionString); con.Open(); string x = Session["New"].ToString(); SqlCommand reg = new SqlCommand("...", con); string log = reg.ExecuteScalar().ToString(); try { SqlCommand inserir = new SqlCommand("insert into licaodecasa (datain,dataout,ano,turma,materia,conteudo,login) values (getdate(),'" + Calendar1.SelectedDate.ToShortDateString() + "','" + ano + "',@turma,@materia,'" + TextBox1.Text.ToString() + "','" + log + "')", con); foreach (ListItem item in lis_tur.Items) { foreach (ListItem items in lis_disc.Items) { inserir.Parameters.Clear(); if (item.Selected) { inserir.Parameters.AddWithValue("@turma", item.Value); if (items.Selected) { inserir.Parameters.AddWithValue("@materia", items.Value); inserir.ExecuteNonQuery(); } } } } con.Close(); Label3.Visible = true; Label3.Text = "Dados gravados com sucesso. Clique em qualquer campo para adicionar mais."; } catch (Exception ex) { Label3.Visible = true; Label3.Text = ex.ToString(); } } Compartilhar este post Link para o post Compartilhar em outros sites
RafaelLN 0 Denunciar post Postado Maio 12, 2016 Aparentemente resolvi o problema, foi só tirar o AutoPostBack="True" do textbox. Aproveitei tb pra mudar o contador em javascript que agora também limita a quantidade de caracteres como mostrado em: http://www.help.market.com.br/js/contar_letras_restantes_em_tex.htm Agradeço a atenção e peço desculpa a qualquer inconveniente. Compartilhar este post Link para o post Compartilhar em outros sites