TabPanel Dinamicamente
Tenho uma página onde o usuário vai escolher uma opção em um dropdownlist e quando der OK, eu crio Tabs dinamicas e dentro delas possui alguns controles checkboxes e label.
Criei o metodo Page_Init e lá eu verifico via Request[ddl.UniqueID] e pego o valor escolhido no DropDown e passo esse valor por parametro para um metodo que fiz que cria as tabs dinamicamente.
O Processo de criaçao das tabs está funcionando perfeito, eu vou acompanhando em modo Debug e ele cria tudo certinho, porem, nao renderiza na tela.
Através do FireBug, eu vi que ele fica assim: <div id="TabContainer1_TabPanel2_tabpageManut" class="ajax__tab_xp ajax__tab_container ajax__tab_default" style="visibility: hidden;">.
Porque ele fica como se eu tivesse colocado Visible=False.
Aí, depois que escolho uma opção no dropdownlist, depois que ele processa tudo e a tela fica na mesma, eu resolvi dar um Refresh, ai que foi que as tabs apareceram.
Alguem pode me dar uma dica ai ?
Obrigado
Thiago
Respostas
Fale,
Uma opção é criar o evento SelectedIndexChanged no dropdownlist de acordo com a listagem 1
protected void Dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
{
//Colocar a lógica de exibir/desaparecer
}
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Sugerido como RespostaErysson Barros sexta-feira, 6 de novembro de 2009 17:53
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 10 de novembro de 2009 14:09
Todas as Respostas
- Olá por esse trecho de html não está mostrando que a tab foi criada, só mostra que vc criou uma div, coloque o codigo html inteiro gerado e o seu código que está gerando
- Verifica se tu não tem algum style definido direto no componente. Quando tu usa visible = false o sistema normalmente nem renderiza na tela.
Não entendi porque você tá usando request, este valor está vindo de outra página? Pelo que consegui entender o DDL está na mesma página das tabs... Fale,
Uma opção é criar o evento SelectedIndexChanged no dropdownlist de acordo com a listagem 1
protected void Dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
{
//Colocar a lógica de exibir/desaparecer
}
Abraço!
Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!- Sugerido como RespostaErysson Barros sexta-feira, 6 de novembro de 2009 17:53
- Marcado como RespostaHarley AraujoMSFT, Moderadorterça-feira, 10 de novembro de 2009 14:09
- Na verdade ele criou, eu que nao copiei o codigo inteiro...
<div id="TabContainer1_TabPanel2_tabpageManut" class="ajax__tab_xp ajax__tab_container ajax__tab_default" style="visibility: hidden;"><div id="TabContainer1_TabPanel2_tabpageManut_header" class="ajax__tab_header"></div><div id="TabContainer1_TabPanel2_tabpageManut_body" class="ajax__tab_body"><div id="TabContainer1_TabPanel2_tabpageManut_tabpageManut_tab_RE" class="ajax__tab_panel" style="display: none; visibility: hidden;"></div><div id="TabContainer1_TabPanel2_tabpageManut_tabpageManut_tab_SEAPOIO" class="ajax__tab_panel" style="display: none; visibility: hidden;"></div><div id="TabContainer1_TabPanel2_tabpageManut_tabpageManut_tab_SMS" class="ajax__tab_panel" style="display: none; visibility: hidden;"></div><div id="TabContainer1_TabPanel2_tabpageManut_tabpageManut_tab_CLIOPER" class="ajax__tab_panel" style="display: none; visibility: hidden;"></div></div></div>
Se ver ai, ele criou as tabs, so que estao todas com HIDDEN!
E como eu disse antes, se eu der um refresh na tela, elas aparecem...
Resumindo, no Page_Init eu crio as Tabs e toda vez que o usuario escolher uma opção no dropdown, eu gravo a opçao escolhida em sessao para assim, a cada postback, ter as tabs sempre criadas.
Mas me parece que eu preciso "forçar" um refresh para elas aparecerem. Mas pelo que li em alguns sites, eu preciso criá-las no metodo Page_Init...
- Faça igual ao erysson falou põe no SelectedIndexChanged, o que daria para vc fazer e por um updatePanel(updatemode condicional) fora dessa div pai, e dae depois que criar ela vc daria um updatepanel.update(); acho que assim vai dar certo.
- Bom galera, agradeço a ajuda e atençao de todos. Consegui resolver!
Fiz o que nosso amigo Erysson disse, criei o SelectedIndexChanged e lá criei as tabs, porem, eu preciso usar esse mesmo metodo dentro do Page_Init, para ele manter as tabs durante os postbacks na pagina.
[]'s
Thiago - Faz com o updatePanel com updatemode = conditional que não precisa ter no page_init.

