Inquiridor
TabContainer com TabPanels dinâmicos

Pergunta
-
Bom dia.
Estou tentando criar tab's dinâmicamente utilizando o ajaxtoolkit no mvc 2 asp.net.
O seguinte erro "Script controls may not be registered after PreRender" acontece quando executo TabContainer1.Tabs.Add(tp); no script abaixo:
pagina teste.aspx
<BODY>
...
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
</cc1:TabContainer>
<%
TabPanel tp = new TabPanel();
tp.ID = "tp1";
tp.HeaderText = "teste_aba";
TabContainer1.Tabs.Add(tp);
%>
...
</BODY>
alguem tem uma idéia do que fazer para gerar dinâmicamente esses TabPanels ?
Obrigado!
Todas as Respostas
-
Então galera,
fui para uma nova abordagem e acho que o caminho é esse:
<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
<% for (int ct = 0; ct <= 1; ct++)
{
ViewData["aux"] = ct+1; %>
<cc1:TabPanel runat="server" HeaderText="TabPanel1" >
<ContentTemplate>
teste
</ContentTemplate>
</cc1:TabPanel>
<% } %>
</cc1:TabContainer>
Porem está dando um erro que acredito que seja por causa que o painel está sem o ID. Porem, não consigo nomeá-lo dinâmicamente:
<cc1:TabPanel ID="<%= (string)ViewData["aux"] %> " runat="server" HeaderText="TabPanel1" >
dá esse erro "Server tags cannot contain <% ... %> constructs."
deve ser algo desse tipo... alguem sabe como posso nomear essa tag ID dinâmicamente ?
Grato pela ajuda! -
-
No MVC é extremamente desaconselhável usar controles do webforms.
Existe o Jquery Tabs (JQuery UI) que pode resolver o seu problema muito mais fácil que tentar adaptar os controles webforms para funcionarem corretamente no MVC. Lembre-se também que no MVC não tem ViewState.
-