asp.net ajax категории аккордеонного меню?
Я получил 2 таблицы sql, категории и сообщения. Я выбираю 5 лучших записей для каждой категории. Но когда я использую его в меню аккордеона, он показывает названия категорий для каждого поста (повторяется).
Вот мой код:
<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>
И моя команда SQL выглядит следующим образом (я хочу выбрать 5 лучших сообщений для каждой категории):
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
Как я могу решить эту проблему?
1 ответ
Решение
Может быть, помочь кому-то
<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 коды 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-коды KategoriGetir
select * from kategori
и код:
protected void accMenu_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
{
yonet.kategori_idy=Convert.ToInt32(DataBinder.Eval(e.AccordionItem.DataItem, "kategori_id").ToString());
}