asp.net ajax accordion menu categories?

902 Views Asked by At

I got 2 sql tables, Categories and Posts. I select top 5 record for each category. But when I use it on accordion menu, it shows category names for each post(repeating).

Here is my code:

       <asp:Accordion ID="accMenu" runat="server"  DataSourceID="ods_menu" RequireOpenedPane="false">
     <HeaderTemplate>
                     <h3><a href="#"><%# Eval("kategori_adi") %></a></h3>
                     </HeaderTemplate>   
                    <ContentTemplate>
                       <div>
                           <ul>
                                <li><asp:HyperLink ID="HyperLink1" runat="server"  Text='<%# Eval("post_etiket") %>'>'></asp:HyperLink></li>
                           </ul>
                            </div>
                    </ContentTemplate>

                  </asp:Accordion>
                  <asp:ObjectDataSource ID="ods_menu" runat="server" SelectMethod="MenuGetir" TypeName="yonet"></asp:ObjectDataSource>

And my SQL command is like this (I want to select top 5 post for each category):

select top 25 p.post_id,p.post_etiket,k.kategori_id,k.kategori_adi
 from post p, kategori k 
where k.kategori_id= p.post_kategori_id order by post_date

How can i solve this problem?

1

There are 1 best solutions below

0
On BEST ANSWER

Maybe help someone

                  <HeaderTemplate>
                 <h3><a href="#"><%# Eval("kategori_adi") %></a></h3>
                 </HeaderTemplate>   
                <ContentTemplate>


                   <div>
                            <ul >
                            <asp:Repeater ID="rp_altmenu" runat="server" DataSourceID="ods_alt_menu">

                            <ItemTemplate>

                                <li><asp:HyperLink ID="HyperLink1" runat="server"  Text='<%# Eval("post_etiket") %>'></asp:HyperLink></li>
                           </ItemTemplate>
                           </asp:Repeater>

                            </ul>
                        </div>

                </ContentTemplate>

              </asp:Accordion>
            <asp:ObjectDataSource ID="ods_kategori" runat="server" SelectMethod="KategoriGetir" TypeName="yonet">

            </asp:ObjectDataSource>
            <asp:ObjectDataSource ID="ods_alt_menu" runat="server"   SelectMethod="AltMenuGetir" TypeName="yonet"></asp:ObjectDataSource>
                    </div>

SQL sp codes of AltMenuGetir

@kategori_id int

AS
select top 5 post_id,post_etiket
from post
where post_kategori_id= @kategori_id
order by post_tarihi

SQL codes of KategoriGetir

select * from kategori

and codebehind:

   protected void accMenu_ItemDataBound(object sender,        AjaxControlToolkit.AccordionItemEventArgs e)

  {
     yonet.kategori_idy=Convert.ToInt32(DataBinder.Eval(e.AccordionItem.DataItem,        "kategori_id").ToString());

   }