Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafaelLN

evento do botão só dispara no segundo clique

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.