• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

LCarreira

TextBox Focus dentro de um tabpanel...

9 mensagens neste tópico

Boa tarde...

Gostaria de saber se alguém me pode ajudar a utilizar o focus dentro de um tabpanel?

Fora do tab este código funciona correctamente, mas quando dentro do tab não mostra qualquer efeito:

TxBCodEmpIdEmpVw1.Focus();
TxBCodEmpIdEmpVw1.Attributes.Add("onFocus", "this.className='caixa_texto_destaque';");
TxBCodEmpIdEmpVw1.Attributes.Add("onBlur", "this.className='caixa_texto_normal';");

obg,

LCarreira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código javascript está a ser gerado? talvez mais código ajude a se perceber de onde pode vir o problema

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como ex tenho este código constituido por 1 tabcontainer com 2 tabs:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" EnableTheming="true" StylesheetTheme="MainTheme" %>

<%--Utilização de objectos do AjaxToolkit...--%>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>  
        <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
    
        <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" CssClass="MyTabs" >
            <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="Identificação" TabIndex="0">
                <ContentTemplate>
                    <div style="width:535px; height:310px">
                        <br />
                        <asp:TextBox ID="TxB1" runat="server" Width="100px" ToolTip="Código da empresa"/>
                        <br />
                        <asp:TextBox ID="TxB2" runat="server" Width="200px" ToolTip="Nome da empresa"/>
                    </div>
                </ContentTemplate>
            </cc1:TabPanel>
            <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="Morada" TabIndex="1">
                <ContentTemplate>
                    <div style="width:535px; height:310px">
                        <br />
                        <asp:TextBox ID="TxB3" runat="server" Width="40px" ToolTip="Código postal"/>
                        <br />
                        <asp:TextBox ID="TxB4" runat="server" Width="100px" ToolTip="Localidade"/>
                    </div>
                </ContentTemplate>
            </cc1:TabPanel>
        </cc1:TabContainer>
    </div>
    </form>
</body>
</html>

o que pretendo é conseguir o focus na primeira txtbox do tab1 assim que entro na página. Posteriormente pretendo conseguir o focus na 1ª textbox de cada tab sempre que mudo de tab.

Não consegui até agora chamar o focus dentro do tabpanel, se for fora funciona perfeitamente como de resto já fiz noutros forms...

Parece que no load o focus fica no tab e não aparece no objecto que se encontra no seu interior. O mesmo acontece quando alternamos entre tabs. :wallbash:

Se alguém puder ajudar agradeço,

LCarreira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depois de muito pesquisar encontrei algo que faz parte daquilo que pretendo...

Coloca o foco na textbox escolhida quando se altera o tab. De seguida apresento o código que utilizei para resolver o primeiro problema:

   <script type="text/javascript">
        function FocusFunction() 
        {            
            if($find("<%=TabContainer1.ClientID%>").get_activeTabIndex()==0)
            {
                document.getElementById("TabContainer1_TabPanel1_TxBCodEmpIdEmpVw1").focus(); 
            }
            else if($find("<%=TabContainer1.ClientID%>").get_activeTabIndex()==1)
            {
                document.getElementById("TabContainer1_TabPanel2_TxBNipcNrEmpVw2").focus(); 
            } 
            else
            {
                document.getElementById("TabContainer1_TabPanel3_TxBCdCaeNatEmpVw3").focus(); 
            }              
        }
    </script>

<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" CssClass="MyTabs" 
         OnClientActiveTabChanged="FocusFunction" >
         <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="Identifica&#231;&#227;o" TabIndex="0" >
         <ContentTemplate>

Mas continuo sem saber como forçar o foco para determinada textbox dentro de um tabpanel logo no load da página, ou seja, sem ter que clicar num tab...

Se alguém tiver solução agradeço,

LCarreira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim o tab é sempre o mesmo, na verdade tenho 3, mas por defeito aparece sempre o primeiro...

Sim já usei o evento load do javascript no tabcontainer e no tabpanel1 para chamar uma função JS com GetElementByID com o id da txtbos e tb já tentei com o caminho completo TabContainer1_TabPanel1_textbox, mas em qualquer dos casos dá um erro a dizer que não conhece a funçãp JS.

Clicando no tab consigo o focus na texbox escolhida, mas no carregar da página não consigo...

Se alguém souber a solução agradeço,

LCarreira

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não conhece qual função?

atenção que é getElementById e não GetElementById  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim tens razão, eu é que me enganei a passar o código...

tenho getElementById...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim tens razão, eu é que me enganei a passar o código...

tenho getElementById...

pois, é que podia ser disso! que debugger estás a usar? Aconselho vivamente Firefox+Firebug ;)

dá pra tudo, breakpoints em todo o JS, navegar no html gerado, ver os pedidos e respostas... tá muito bom

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora