ACCORDIONPANE
Estou tando colocar ACCORDIONPANE para exibir a listagem de um DataTable, porém ele nunca aparece nada. somento. alguem sabe dizer onde está o erro?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Agencia a = new Agencia();
Accordion1.DataSource = a.Listagem();
Accordion1.DataBind();
}
}
<asp:Accordion ID=[Ô]Accordion1[Ô] runat=[Ô]server[Ô] FadeTransitions=[Ô]true[Ô] SelectedIndex=[Ô]0[Ô]
TransitionDuration=[Ô]200[Ô] AutoSize=[Ô]None[Ô] FramesPerSecond=[Ô]20[Ô] HeaderCssClass=[Ô]accordionHeader[Ô] ContentCssClass=[Ô]accordionContent[Ô] >
<Panes>
<asp:AccordionPane ID=[Ô]AccordionPane1[Ô] runat=[Ô]server[Ô]>
<Header>
<asp:Label runat=[Ô]server[Ô] ID=[Ô]lblTitulo[Ô] Text=[ô]<%# DataBinder.Eval(Container.DataItem, [Ô]sigla[Ô]) %>[ô]></asp:Label>
</Header>
<Content>><%# Eval([Ô]sigla[Ô]) %></Content>
</asp:AccordionPane>
</Panes>
</asp:Accordion>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Agencia a = new Agencia();
Accordion1.DataSource = a.Listagem();
Accordion1.DataBind();
}
}
<asp:Accordion ID=[Ô]Accordion1[Ô] runat=[Ô]server[Ô] FadeTransitions=[Ô]true[Ô] SelectedIndex=[Ô]0[Ô]
TransitionDuration=[Ô]200[Ô] AutoSize=[Ô]None[Ô] FramesPerSecond=[Ô]20[Ô] HeaderCssClass=[Ô]accordionHeader[Ô] ContentCssClass=[Ô]accordionContent[Ô] >
<Panes>
<asp:AccordionPane ID=[Ô]AccordionPane1[Ô] runat=[Ô]server[Ô]>
<Header>
<asp:Label runat=[Ô]server[Ô] ID=[Ô]lblTitulo[Ô] Text=[ô]<%# DataBinder.Eval(Container.DataItem, [Ô]sigla[Ô]) %>[ô]></asp:Label>
</Header>
<Content>><%# Eval([Ô]sigla[Ô]) %></Content>
</asp:AccordionPane>
</Panes>
</asp:Accordion>
Accordion, é um componente AJAX, ele deve estar dentro de um UpdatePanel senão não tem como funcionar. Uma alternativa é usar o Accordion do JQueryUI, ele não depende de um componente updatepanel e é muito mais versátil. Além disso, adicionando a biblioteca JQueryUI no seu projeto, você vai poder usar todos os outros recursos do JQueryUI...
Mais quando tiro o código baixo ele funciona, mais fica com os texto fixo que eu coloco.
Agencia a = new Agencia();
Accordion1.DataSource = a.Listagem();
Accordion1.DataBind();
Agencia a = new Agencia();
Accordion1.DataSource = a.Listagem();
Accordion1.DataBind();
Se não me engano para usar DataBinding você não pode criar panes, você tem que usar as propriedades HeaderTemplate e ContentTemplate
Você não passa a fonte de dados para um accordion, ele não é um controle DataFriendly. Você pode colocar um grid ou campos dentro dele e atribuir uma fonte de dados à esse grid ou campos, mas ao accordion mesmo, não.
Ocelot , fiz o que vc disse e não funcionou!
Kerplunk, crieu um datalist ele exibe normalmente, mais não sei como juntar.
Kerplunk, crieu um datalist ele exibe normalmente, mais não sei como juntar.
Dentro do Content do Accordion, coloque seu datalist...
da erro: segue o código abaixo
<asp:Accordion ID=[Ô]Accordion1[Ô] runat=[Ô]server[Ô] FadeTransitions=[Ô]true[Ô] SelectedIndex=[Ô]0[Ô]
TransitionDuration=[Ô]200[Ô] AutoSize=[Ô]None[Ô] FramesPerSecond=[Ô]20[Ô] HeaderCssClass=[Ô]accordionHeader[Ô]
ContentCssClass=[Ô]accordionContent[Ô]>
<HeaderTemplate>
<asp:DataList ID=[Ô]DataList1[Ô] runat=[Ô]server[Ô] OnSelectedIndexChanged=[Ô]DataList1_SelectedIndexChanged[Ô]>
<ItemTemplate>
teste:<%# Eval([Ô]sigla[Ô]) %>
</ItemTemplate>
</asp:DataList>
</HeaderTemplate>
</asp:Accordion>
<asp:Accordion ID=[Ô]Accordion1[Ô] runat=[Ô]server[Ô] FadeTransitions=[Ô]true[Ô] SelectedIndex=[Ô]0[Ô]
TransitionDuration=[Ô]200[Ô] AutoSize=[Ô]None[Ô] FramesPerSecond=[Ô]20[Ô] HeaderCssClass=[Ô]accordionHeader[Ô]
ContentCssClass=[Ô]accordionContent[Ô]>
<HeaderTemplate>
<asp:DataList ID=[Ô]DataList1[Ô] runat=[Ô]server[Ô] OnSelectedIndexChanged=[Ô]DataList1_SelectedIndexChanged[Ô]>
<ItemTemplate>
teste:<%# Eval([Ô]sigla[Ô]) %>
</ItemTemplate>
</asp:DataList>
</HeaderTemplate>
</asp:Accordion>
Qual erro?
No load ele não reconhece o datalist, só reconhece quando tiro do accordion.
Consegui, ele não aceita um DataTable, tive que colocar um DataSET.
ficou assim:
Agencia agencia = new Agencia();
DataTable rs = agencia.Listagem();
DataSet rs1 = new DataSet();
rs1.Tables.Add(rs);
Accordion1.DataSource = rs1.Tables[0].DefaultView;
Accordion1.DataBind();
ficou assim:
Agencia agencia = new Agencia();
DataTable rs = agencia.Listagem();
DataSet rs1 = new DataSet();
rs1.Tables.Add(rs);
Accordion1.DataSource = rs1.Tables[0].DefaultView;
Accordion1.DataBind();
Tópico encerrado , respostas não são mais permitidas