none
UPDATEPANEL ROUBA O FOCUS DO TEXTBOX RRS feed

  • Pergunta

  • Estou fazendo o site em VISUAL STUDIO 2010 ASP.NET

    PESSOAL, PUS UM TEXTBOX NUM UPDATEPANEL COM TIMER, QUANDO CHEGA NO UPDATEPANEL.UPDATE() A PESSOA QUE ESTIVER ESCREVENDO NUM TEXTBOX PERDE O CURSOR.

    COMO FAZER COM O TEXTBOX FIQUE NUM UPATEPANEL E NAO PERCA O FOCUS QUANDO O UPDATE() ACONTECER ?

    OBRIGADO

    quarta-feira, 2 de outubro de 2013 19:46

Respostas

  • PESSOAL

    ACHEI A SOLUÇÃO

    USO TRÊS  UPDATEPANEL, O PROBLEMA É QUE QUANDO EXECUTAVA UPDATE() ROUBAVA O FOCUS DOS TEXTBOX QUE ESTAVAM NELES. 

    RESOLVI COLOCANDO UM LABEL DIZENDO SE O CHAT ESTA LIVRE OU OCUPADO. SE ESTIVER LIVRE NÃO FAÇO OS UPDATE() DOS TXTBOX. POIS ELES JÁ ESTÃO HABILITADOS. SE ESTIVER OCUPADO, AI EXECUTO PARA BLOQUEAR TUDO. SEGUE FONTE ABAIXO

        protected void Page_Load(object sender, EventArgs e)
        {

             Timer1.Interval = 100;
            Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick1);

        }

        protected void Timer1_Tick1(object sender, EventArgs e)
        {
            bancoMySqlSiteNovo.AbrirConexaoMySql();
            MySqlCommand cmd = bancoMySqlSiteNovo.Conexao.CreateCommand();
            cmd.Connection = bancoMySqlSiteNovo.Conexao;
            cmd.CommandText = "select idchat from ChatSite";
            MySqlDataReader DataReader = cmd.ExecuteReader();

            //  VERIFICA SE TEM REGISTROS
            if (DataReader.Read()) // SE TIVER REGISTROS
            {
                // QUANDO GRAVA A PRIMEIRA MENSAGEM DO CHAT JÁ NÃO É MAIS FINAL DE ARQUIVO 
                // SÓ  POSSO DESABILITAR O CHAT DO USUARIO QUE NÃO ESTA NELE NO MOMENTO
                if (DataReader["idchat"].ToString() != Nome2.Text)
                {  // DESABILITO OS CONTROLES PORQUE E UM USUARIO DIFERENTE
                    BtnEnviar.Enabled = false;
                    BtnSair.Enabled = false;
                    DtListChat.Visible = false;
                    TxtMensagem.Enabled = false;
                    Nome2.Enabled = false;
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();


                    LblStatus.ForeColor = System.Drawing.Color.Red;
                    LblStatus.Text = "CHAT OCUPADO .........";
                }
                else
                {  // HABILITO OS CONTROLES PORQUE É O MESMO USUARIO
                    BtnEnviar.Enabled = true;
                    BtnSair.Enabled = true;
                    LblStatus.ForeColor = System.Drawing.Color.Green;
                    DtListChat.Visible = true;
                    TxtMensagem.Enabled = true;
                    Nome2.Enabled = true;
                    if (LblStatus.Text != "CHAT LIVRE.")
                    { 
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();
                    }
                    LblStatus.Text = "CHAT LIVRE.";
                }
            }
            else
            { // HABILITO OS CONTROLES PORQUE NÃO TEM NINGUEM NO CHAT
                BtnEnviar.Enabled = true;
                BtnSair.Enabled = true;
                LblStatus.ForeColor = System.Drawing.Color.Green;
                DtListChat.Visible = true;
                TxtMensagem.Enabled = true;
                Nome2.Enabled = true;
                if (LblStatus.Text != "CHAT LIVRE.")
                {
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();
                }
                LblStatus.Text = "CHAT LIVRE.";
            }

            DataReader.Close();

            DtListChat.DataBind();
            UpdatePanel1.Update();

        }  

    FICOU 10, SUPER LEGAL, VOCÊS PODEM FAZER PARECIDO PARA SUAS APLICAÇÕES.

    O LABEL TEM QUE FICAR NO UPDATEPANEL PRINCIPAL. ABRAÇOS.

    • Marcado como Resposta MiguelReis quinta-feira, 3 de outubro de 2013 14:59
    • Editado MiguelReis quinta-feira, 3 de outubro de 2013 15:24
    quinta-feira, 3 de outubro de 2013 14:58

Todas as Respostas

  • Estou fazendo o site em VISUAL STUDIO 2010 ASP.NET

    PESSOAL, PUS UM TEXTBOX NUM UPDATEPANEL COM TIMER, QUANDO CHEGA NO UPDATEPANEL.UPDATE() A PESSOA QUE ESTIVER ESCREVENDO NUM TEXTBOX PERDE O CURSOR.

    COMO FAZER COM O TEXTBOX FIQUE NUM UPATEPANEL E NAO PERCA O FOCUS QUANDO O UPDATE() ACONTECER ?

    OBRIGADO

    Então eu até fiz o teste e sinceramente não perde o foco!

    Mas vamos lá como se ta fazendo ? (código)


    Fúlvio Cezar Canducci Dias

    quarta-feira, 2 de outubro de 2013 19:58
  • VAMOS FULVIO, COMENTEI BEM PARA VC ENTENDER

        protected void Page_Load(object sender, EventArgs e)
        {

             Timer1.Interval = 1000;
            Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick1);

        }
      
        protected void Timer1_Tick1(object sender, EventArgs e)
        {
            bancoMySqlSiteNovo.AbrirConexaoMySql();
            MySqlCommand cmd = bancoMySqlSiteNovo.Conexao.CreateCommand();
            cmd.Connection = bancoMySqlSiteNovo.Conexao;
            cmd.CommandText = "select idchat from ChatSite";
            MySqlDataReader DataReader = cmd.ExecuteReader();
            
            //  VERIFICA SE TEM REGISTROS
            if (DataReader.Read()) // SE TIVER REGISTROS
            {
                // QUANDO GRAVA A PRIMEIRA MENSAGEM DO CHAT JÁ NÃO É MAIS FINAL DE ARQUIVO 
                // SÓ  POSSO DESABILITAR O CHAT DO USUARIO QUE NÃO ESTA NELE NO MOMENTO
                if (DataReader["idchat"].ToString() != Nome2.Text)
                {  // DESABILITO OS CONTROLES PORQUE E UM USUARIO DIFERENTE
                    this.BtnEnviar.Enabled = false;
                    this.BtnSair.Enabled = false;
                    this.DtListChat.Visible = false;
                    TxtMensagem.Enabled = false;
                    this.Nome2.Enabled = false;


                    this.LblStatus.ForeColor = System.Drawing.Color.Red;
                    this.LblStatus.Text = "AGUARDE ATENDIMENTO.";
                }
                else
                {  // HABILITO OS CONTROLES PORQUE É O MESMO USUARIO
                    this.BtnEnviar.Enabled = true;
                    this.BtnSair.Enabled = true;
                    this.LblStatus.ForeColor = System.Drawing.Color.Green;
                    this.LblStatus.Text = "CHAT LIVRE E ON-LINE.";
                    this.DtListChat.Visible = true;
                    this.TxtMensagem.Enabled = true;
                    this.Nome2.Enabled = true;
                }
            }
            else
            { // HABILITO OS CONTROLES PORQUE NÃO TEM NINGUEM NO CHAT
                this.BtnEnviar.Enabled = true;
                this.BtnSair.Enabled = true;
                this.LblStatus.ForeColor = System.Drawing.Color.Green;
                this.LblStatus.Text = "CHAT LIVRE E ON-LINE.";
                this.DtListChat.Visible = true;
                this.TxtMensagem.Enabled = true;
                this.Nome2.Enabled = true;
            }

            DataReader.Close();
          
            DtListChat.DataBind();
            UpdatePanel1.Update();
       
        }    

    quarta-feira, 2 de outubro de 2013 20:06
  • código da tela?

    Fúlvio Cezar Canducci Dias

    quarta-feira, 2 de outubro de 2013 20:07
  • AI VAI CODIGO DA TELA

     <div style="height: 595px"> 
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                                <asp:Label ID="Label1" runat="server" ForeColor="#003399" Text="ÁREA DO CHAT"></asp:Label>
                                <br />
                                <asp:Label ID="Label2" runat="server" ForeColor="Black" 
                                    Text="Informe o seu Nome ou Apelido"></asp:Label>
                                <br />
                               <asp:TextBox ID="Nome2" runat="server" Width="413px"></asp:TextBox>
                                
                                <br />
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                               
                                <asp:DataList ID="DtListChat" runat="server" DataSourceID="SqlDataSource1" 
                                    Height="0px" ShowFooter="False" ShowHeader="False" Width="384px">
                                    <ItemTemplate>
                                        &nbsp;<asp:Label ID="IDCHATLabel" runat="server" Text='<%# Eval("IDCHAT") %>' />
                                        <br />
                                        <asp:Label ID="TEXTOLabel" runat="server" Text='<%# Eval("TEXTO") %>' />
                                        <br />
                                        <br />
                                    </ItemTemplate>
                                </asp:DataList>
                                <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick1">
                                </asp:Timer>
                                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:SiteNovoConnectionString %>" 
                                    ProviderName="<%$ ConnectionStrings:SiteNovoConnectionString.ProviderName %>" 
                                    SelectCommand="SELECT IDCHAT, TEXTO FROM SiteNovo.ChatSite">
                                </asp:SqlDataSource>
                                
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Label ID="LblStatus" runat="server" ForeColor="Green" 
                                    Text="CHAT LIVRE E ON-LINE."></asp:Label>
                                
                            </ContentTemplate>
                        </asp:UpdatePanel>
                           <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                               
                                        <asp:Label ID="Label7" runat="server" ForeColor="Black" 
                                            Text="Digite a sua mensagem"></asp:Label>
                                            <asp:TextBox ID="TxtMensagem" runat="server" Height="66px" Rows="10" 
                                            TextMode="MultiLine" Width="388px" />
                                <br />
                                        
                                        <asp:Button ID="BtnEnviar" runat="server" Height="24px" Text="Enviar" 
                                            Width="63px" onclick="BtnEnviar_Click1" />
                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <asp:Button ID="BtnSair" runat="server" onclick="BtnSair_Click1" Text="Sair" 
                                            Width="62px" Height="25px" />
                         </ContentTemplate>
                         <Triggers>
                                <asp:AsyncPostBackTrigger ControlID="BtnEnviar" EventName="Click" />
                         </Triggers>
                        </asp:UpdatePanel>
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                <br />
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                <asp:Label ID="Label5" runat="server" ForeColor="Red" 
                                    Text=" Favor informar o seu nome." Visible="False"></asp:Label>
                                &nbsp;&nbsp;&nbsp;<br />
                      </div>

    quarta-feira, 2 de outubro de 2013 20:09
  • AI VAI CODIGO DA TELA

     <div style="height: 595px"> 
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                                <asp:Label ID="Label1" runat="server" ForeColor="#003399" Text="ÁREA DO CHAT"></asp:Label>
                                <br />
                                <asp:Label ID="Label2" runat="server" ForeColor="Black" 
                                    Text="Informe o seu Nome ou Apelido"></asp:Label>
                                <br />
                               <asp:TextBox ID="Nome2" runat="server" Width="413px"></asp:TextBox>
                                
                                <br />
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                               
                                <asp:DataList ID="DtListChat" runat="server" DataSourceID="SqlDataSource1" 
                                    Height="0px" ShowFooter="False" ShowHeader="False" Width="384px">
                                    <ItemTemplate>
                                        &nbsp;<asp:Label ID="IDCHATLabel" runat="server" Text='<%# Eval("IDCHAT") %>' />
                                        <br />
                                        <asp:Label ID="TEXTOLabel" runat="server" Text='<%# Eval("TEXTO") %>' />
                                        <br />
                                        <br />
                                    </ItemTemplate>
                                </asp:DataList>
                                <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick1">
                                </asp:Timer>
                                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:SiteNovoConnectionString %>" 
                                    ProviderName="<%$ ConnectionStrings:SiteNovoConnectionString.ProviderName %>" 
                                    SelectCommand="SELECT IDCHAT, TEXTO FROM SiteNovo.ChatSite">
                                </asp:SqlDataSource>
                                
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Label ID="LblStatus" runat="server" ForeColor="Green" 
                                    Text="CHAT LIVRE E ON-LINE."></asp:Label>
                                
                            </ContentTemplate>
                        </asp:UpdatePanel>
                           <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                               
                                        <asp:Label ID="Label7" runat="server" ForeColor="Black" 
                                            Text="Digite a sua mensagem"></asp:Label>
                                            <asp:TextBox ID="TxtMensagem" runat="server" Height="66px" Rows="10" 
                                            TextMode="MultiLine" Width="388px" />
                                <br />
                                        
                                        <asp:Button ID="BtnEnviar" runat="server" Height="24px" Text="Enviar" 
                                            Width="63px" onclick="BtnEnviar_Click1" />
                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <asp:Button ID="BtnSair" runat="server" onclick="BtnSair_Click1" Text="Sair" 
                                            Width="62px" Height="25px" />
                         </ContentTemplate>
                         <Triggers>
                                <asp:AsyncPostBackTrigger ControlID="BtnEnviar" EventName="Click" />
                         </Triggers>
                        </asp:UpdatePanel>
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                <br />
                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                <asp:Label ID="Label5" runat="server" ForeColor="Red" 
                                    Text=" Favor informar o seu nome." Visible="False"></asp:Label>
                                &nbsp;&nbsp;&nbsp;<br />
                      </div>

    Tira do procedimento  this.TxtMensagem.Enabled = true; testa e me fala


    Fúlvio Cezar Canducci Dias

    quarta-feira, 2 de outubro de 2013 20:13
  • Fulvio

    Eu usava sem o this. ai pus o this para ver se funcionava

    com ou sem ele nao funciona

    Miguel

    quarta-feira, 2 de outubro de 2013 20:19
  • Fulvio

    Eu usava sem o this. ai pus o this para ver se funcionava

    com ou sem ele nao funciona

    Miguel

    tira a linha inteira! "this.TxtMensagem.Enabled = true;"

    Fúlvio Cezar Canducci Dias

    quarta-feira, 2 de outubro de 2013 20:20
  • Fluvio

    Como assim tira a linha inteira ?

    Porque tirar se eu quero habilitar 

    "this.TxtMensagem.Enabled = true;"

    Miguel


    • Editado MiguelReis quinta-feira, 3 de outubro de 2013 11:44
    quinta-feira, 3 de outubro de 2013 11:42
  • Miguel, me responde uma coisa, que eu não consegui entender. 

    Qual txtBox está perdendo o foco? 

    E se acontece, acontece tanto quando o usuário digita no txtBox1 ai o foco sai desse campo e também quando o usuário está digitando no txtBox2 e o foco se perde? Ou isso ocorre apenas em 1 dos campo? Qual deles?

    Abraço.

     

    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs


    quinta-feira, 3 de outubro de 2013 12:08
  • Vamos la

    Eu pus um textbox chamado nome2 dentro de um UPDATEPANEL para o usuario que entrar no CHAT.

    Eu pus um textbox chamado TxtMensagem junto com dois botões um para ENVIAR e outro para SAIR, dentro de outro UPDATEPANEL.

    Os dois estão junto com o UPDATEPANEL do datalist que mostra as mensagens que vão sendo cadastradas.

    Tenho um timer e o evento dele.

    Pus todos os update() dentro do evento do timer. Ai quando passa pelo evento e faz os update(),  rouba o foco dos 2 textbox porque o comando update() recarrega aquele pedaço. Não sei como desabilitar botões sem updatepanel. Pois não funciona.

    Socorro gente.




    • Editado MiguelReis quinta-feira, 3 de outubro de 2013 13:12
    quinta-feira, 3 de outubro de 2013 13:09
  • Acho que entendi. 

    Todas as vezes que você da o post no seu Panel, os focos são perdidos. 

    Se você precisa desabilitar botoes eles tem uma propriedade Enable, que no seu caso poderá ser controlada por jquery, no keypress ou keyup dos seus check boxes. 

     $(document).ready(function () {
        $("#txtNomePai").keyup(function () {
            if ($("#id so seu txtBox").val() != "")
               $("#id do seu botao").removeAttr("disabled");
            else
               $("#id do seu botao").attr("disabled", "disabled");
            });
    });

    Com isso você pode desabilitar e habilitar o botão sem dar o post na página, apenas com o digitar do seu campo. 

    Espero que resolva seu problema.

    Se ajudou marque. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs


    quinta-feira, 3 de outubro de 2013 14:19
  • PESSOAL

    ACHEI A SOLUÇÃO

    USO TRÊS  UPDATEPANEL, O PROBLEMA É QUE QUANDO EXECUTAVA UPDATE() ROUBAVA O FOCUS DOS TEXTBOX QUE ESTAVAM NELES. 

    RESOLVI COLOCANDO UM LABEL DIZENDO SE O CHAT ESTA LIVRE OU OCUPADO. SE ESTIVER LIVRE NÃO FAÇO OS UPDATE() DOS TXTBOX. POIS ELES JÁ ESTÃO HABILITADOS. SE ESTIVER OCUPADO, AI EXECUTO PARA BLOQUEAR TUDO. SEGUE FONTE ABAIXO

        protected void Page_Load(object sender, EventArgs e)
        {

             Timer1.Interval = 100;
            Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick1);

        }

        protected void Timer1_Tick1(object sender, EventArgs e)
        {
            bancoMySqlSiteNovo.AbrirConexaoMySql();
            MySqlCommand cmd = bancoMySqlSiteNovo.Conexao.CreateCommand();
            cmd.Connection = bancoMySqlSiteNovo.Conexao;
            cmd.CommandText = "select idchat from ChatSite";
            MySqlDataReader DataReader = cmd.ExecuteReader();

            //  VERIFICA SE TEM REGISTROS
            if (DataReader.Read()) // SE TIVER REGISTROS
            {
                // QUANDO GRAVA A PRIMEIRA MENSAGEM DO CHAT JÁ NÃO É MAIS FINAL DE ARQUIVO 
                // SÓ  POSSO DESABILITAR O CHAT DO USUARIO QUE NÃO ESTA NELE NO MOMENTO
                if (DataReader["idchat"].ToString() != Nome2.Text)
                {  // DESABILITO OS CONTROLES PORQUE E UM USUARIO DIFERENTE
                    BtnEnviar.Enabled = false;
                    BtnSair.Enabled = false;
                    DtListChat.Visible = false;
                    TxtMensagem.Enabled = false;
                    Nome2.Enabled = false;
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();


                    LblStatus.ForeColor = System.Drawing.Color.Red;
                    LblStatus.Text = "CHAT OCUPADO .........";
                }
                else
                {  // HABILITO OS CONTROLES PORQUE É O MESMO USUARIO
                    BtnEnviar.Enabled = true;
                    BtnSair.Enabled = true;
                    LblStatus.ForeColor = System.Drawing.Color.Green;
                    DtListChat.Visible = true;
                    TxtMensagem.Enabled = true;
                    Nome2.Enabled = true;
                    if (LblStatus.Text != "CHAT LIVRE.")
                    { 
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();
                    }
                    LblStatus.Text = "CHAT LIVRE.";
                }
            }
            else
            { // HABILITO OS CONTROLES PORQUE NÃO TEM NINGUEM NO CHAT
                BtnEnviar.Enabled = true;
                BtnSair.Enabled = true;
                LblStatus.ForeColor = System.Drawing.Color.Green;
                DtListChat.Visible = true;
                TxtMensagem.Enabled = true;
                Nome2.Enabled = true;
                if (LblStatus.Text != "CHAT LIVRE.")
                {
                    UpdatePanel2.Update();
                    UpdatePanel3.Update();
                }
                LblStatus.Text = "CHAT LIVRE.";
            }

            DataReader.Close();

            DtListChat.DataBind();
            UpdatePanel1.Update();

        }  

    FICOU 10, SUPER LEGAL, VOCÊS PODEM FAZER PARECIDO PARA SUAS APLICAÇÕES.

    O LABEL TEM QUE FICAR NO UPDATEPANEL PRINCIPAL. ABRAÇOS.

    • Marcado como Resposta MiguelReis quinta-feira, 3 de outubro de 2013 14:59
    • Editado MiguelReis quinta-feira, 3 de outubro de 2013 15:24
    quinta-feira, 3 de outubro de 2013 14:58