Ir para o conteúdo
LCarreira

TextBox Focus dentro de um tabpanel...

Mensagens Recomendadas

LCarreira    0
LCarreira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LCarreira    0
LCarreira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LCarreira    0
LCarreira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LCarreira    0
LCarreira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
vitortomaz    1
vitortomaz

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade